@deanwu/vue-component-library 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo.html +1 -0
- package/img/default.bf7d2d64.png +0 -0
- package/package.json +2 -2
- package/vue-component-library.common.js +13971 -0
- package/vue-component-library.common.js.map +1 -0
- package/vue-component-library.css +1 -0
- package/vue-component-library.umd.js +13990 -0
- package/vue-component-library.umd.js.map +1 -0
- package/vue-component-library.umd.min.js +219 -0
- package/vue-component-library.umd.min.js.map +1 -0
- package/main.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue-component-library.umd.min.js","mappings":"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","sources":["webpack://vue-component-library/webpack/universalModuleDefinition","webpack://vue-component-library/./node_modules/core-js/internals/a-callable.js","webpack://vue-component-library/./node_modules/core-js/internals/an-object.js","webpack://vue-component-library/./node_modules/core-js/internals/array-includes.js","webpack://vue-component-library/./node_modules/core-js/internals/array-set-length.js","webpack://vue-component-library/./node_modules/core-js/internals/classof-raw.js","webpack://vue-component-library/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://vue-component-library/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://vue-component-library/./node_modules/core-js/internals/create-property-descriptor.js","webpack://vue-component-library/./node_modules/core-js/internals/define-built-in.js","webpack://vue-component-library/./node_modules/core-js/internals/define-global-property.js","webpack://vue-component-library/./node_modules/core-js/internals/descriptors.js","webpack://vue-component-library/./node_modules/core-js/internals/document-all.js","webpack://vue-component-library/./node_modules/core-js/internals/document-create-element.js","webpack://vue-component-library/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://vue-component-library/./node_modules/core-js/internals/engine-user-agent.js","webpack://vue-component-library/./node_modules/core-js/internals/engine-v8-version.js","webpack://vue-component-library/./node_modules/core-js/internals/enum-bug-keys.js","webpack://vue-component-library/./node_modules/core-js/internals/export.js","webpack://vue-component-library/./node_modules/core-js/internals/fails.js","webpack://vue-component-library/./node_modules/core-js/internals/function-bind-native.js","webpack://vue-component-library/./node_modules/core-js/internals/function-call.js","webpack://vue-component-library/./node_modules/core-js/internals/function-name.js","webpack://vue-component-library/./node_modules/core-js/internals/function-uncurry-this.js","webpack://vue-component-library/./node_modules/core-js/internals/get-built-in.js","webpack://vue-component-library/./node_modules/core-js/internals/get-method.js","webpack://vue-component-library/./node_modules/core-js/internals/global.js","webpack://vue-component-library/./node_modules/core-js/internals/has-own-property.js","webpack://vue-component-library/./node_modules/core-js/internals/hidden-keys.js","webpack://vue-component-library/./node_modules/core-js/internals/ie8-dom-define.js","webpack://vue-component-library/./node_modules/core-js/internals/indexed-object.js","webpack://vue-component-library/./node_modules/core-js/internals/inspect-source.js","webpack://vue-component-library/./node_modules/core-js/internals/internal-state.js","webpack://vue-component-library/./node_modules/core-js/internals/is-array.js","webpack://vue-component-library/./node_modules/core-js/internals/is-callable.js","webpack://vue-component-library/./node_modules/core-js/internals/is-forced.js","webpack://vue-component-library/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://vue-component-library/./node_modules/core-js/internals/is-object.js","webpack://vue-component-library/./node_modules/core-js/internals/is-pure.js","webpack://vue-component-library/./node_modules/core-js/internals/is-symbol.js","webpack://vue-component-library/./node_modules/core-js/internals/length-of-array-like.js","webpack://vue-component-library/./node_modules/core-js/internals/make-built-in.js","webpack://vue-component-library/./node_modules/core-js/internals/math-trunc.js","webpack://vue-component-library/./node_modules/core-js/internals/object-define-property.js","webpack://vue-component-library/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://vue-component-library/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://vue-component-library/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://vue-component-library/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://vue-component-library/./node_modules/core-js/internals/object-keys-internal.js","webpack://vue-component-library/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://vue-component-library/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://vue-component-library/./node_modules/core-js/internals/own-keys.js","webpack://vue-component-library/./node_modules/core-js/internals/require-object-coercible.js","webpack://vue-component-library/./node_modules/core-js/internals/shared-key.js","webpack://vue-component-library/./node_modules/core-js/internals/shared-store.js","webpack://vue-component-library/./node_modules/core-js/internals/shared.js","webpack://vue-component-library/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://vue-component-library/./node_modules/core-js/internals/to-absolute-index.js","webpack://vue-component-library/./node_modules/core-js/internals/to-indexed-object.js","webpack://vue-component-library/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://vue-component-library/./node_modules/core-js/internals/to-length.js","webpack://vue-component-library/./node_modules/core-js/internals/to-object.js","webpack://vue-component-library/./node_modules/core-js/internals/to-primitive.js","webpack://vue-component-library/./node_modules/core-js/internals/to-property-key.js","webpack://vue-component-library/./node_modules/core-js/internals/try-to-string.js","webpack://vue-component-library/./node_modules/core-js/internals/uid.js","webpack://vue-component-library/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://vue-component-library/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://vue-component-library/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://vue-component-library/./node_modules/core-js/internals/well-known-symbol.js","webpack://vue-component-library/./node_modules/core-js/modules/es.array.push.js","webpack://vue-component-library/./src/assets/script/lib/kindeditor/kindeditor-all.js","webpack://vue-component-library/external umd {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://vue-component-library/webpack/bootstrap","webpack://vue-component-library/webpack/runtime/compat get default export","webpack://vue-component-library/webpack/runtime/define property getters","webpack://vue-component-library/webpack/runtime/global","webpack://vue-component-library/webpack/runtime/hasOwnProperty shorthand","webpack://vue-component-library/webpack/runtime/make namespace object","webpack://vue-component-library/webpack/runtime/publicPath","webpack://vue-component-library/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-component-library/./src/components/unit/button.vue","webpack://vue-component-library/src/components/unit/button.vue","webpack://vue-component-library/./src/components/unit/button.vue?36c8","webpack://vue-component-library/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://vue-component-library/./src/components/unit/button.vue?8ac2","webpack://vue-component-library/./src/components/unit/input.vue","webpack://vue-component-library/src/components/unit/input.vue","webpack://vue-component-library/./src/components/unit/input.vue?2583","webpack://vue-component-library/./src/components/unit/input.vue?f480","webpack://vue-component-library/./src/components/unit/radio.vue","webpack://vue-component-library/./src/components/createStore.js","webpack://vue-component-library/src/components/unit/radio.vue","webpack://vue-component-library/./src/components/unit/radio.vue?886a","webpack://vue-component-library/./src/components/unit/radio.vue?5fd0","webpack://vue-component-library/./src/components/unit/radio_group.vue","webpack://vue-component-library/src/components/unit/radio_group.vue","webpack://vue-component-library/./src/components/unit/radio_group.vue?c8b8","webpack://vue-component-library/./src/components/unit/radio_group.vue?dab6","webpack://vue-component-library/./src/components/unit/checkbox.vue","webpack://vue-component-library/src/components/unit/checkbox.vue","webpack://vue-component-library/./src/components/unit/checkbox.vue?f0f0","webpack://vue-component-library/./src/components/unit/checkbox.vue?7e6f","webpack://vue-component-library/./src/components/unit/checkbox_group.vue","webpack://vue-component-library/src/components/unit/checkbox_group.vue","webpack://vue-component-library/./src/components/unit/checkbox_group.vue?b3ee","webpack://vue-component-library/./src/components/unit/checkbox_group.vue?610f","webpack://vue-component-library/./src/components/unit/select.vue","webpack://vue-component-library/src/components/unit/select.vue","webpack://vue-component-library/./src/components/unit/select.vue?77f2","webpack://vue-component-library/./src/components/unit/select.vue?47cf","webpack://vue-component-library/./src/components/unit/region.vue","webpack://vue-component-library/src/components/unit/region.vue","webpack://vue-component-library/./src/components/unit/region.vue?ed9f","webpack://vue-component-library/./src/components/unit/region.vue?945c","webpack://vue-component-library/./src/components/unit/upload_file.vue","webpack://vue-component-library/src/components/unit/upload_file.vue","webpack://vue-component-library/./src/components/unit/upload_file.vue?3cc4","webpack://vue-component-library/./src/components/unit/upload_file.vue?69db","webpack://vue-component-library/./src/components/unit/file.vue","webpack://vue-component-library/src/components/unit/file.vue","webpack://vue-component-library/./src/components/unit/file.vue?775f","webpack://vue-component-library/./src/components/unit/file.vue?e6c9","webpack://vue-component-library/./src/components/unit/editor.vue","webpack://vue-component-library/src/components/unit/editor.vue","webpack://vue-component-library/./src/components/unit/editor.vue?9de9","webpack://vue-component-library/./src/components/unit/editor.vue?a7d1","webpack://vue-component-library/./src/components/popup/dialog.vue","webpack://vue-component-library/src/components/popup/dialog.vue","webpack://vue-component-library/./src/components/popup/dialog.vue?3009","webpack://vue-component-library/./src/components/popup/dialog.vue?29ea","webpack://vue-component-library/./src/components/popup/loading.vue","webpack://vue-component-library/src/components/popup/loading.vue","webpack://vue-component-library/./src/components/popup/loading.vue?8a70","webpack://vue-component-library/./src/components/popup/loading.vue?b096","webpack://vue-component-library/./src/components/popup/message.vue","webpack://vue-component-library/src/components/popup/message.vue","webpack://vue-component-library/./src/components/popup/message.vue?dd78","webpack://vue-component-library/./src/components/popup/message.vue?871a","webpack://vue-component-library/./src/components/popup/notice.vue","webpack://vue-component-library/src/components/popup/notice.vue","webpack://vue-component-library/./src/components/popup/notice.vue?d541","webpack://vue-component-library/./src/components/popup/notice.vue?4800","webpack://vue-component-library/./src/components/popup/confirm.vue","webpack://vue-component-library/src/components/popup/confirm.vue","webpack://vue-component-library/./src/components/popup/confirm.vue?5deb","webpack://vue-component-library/./src/components/popup/confirm.vue?250c","webpack://vue-component-library/./src/components/popup/preview.vue","webpack://vue-component-library/src/components/popup/preview.vue","webpack://vue-component-library/./src/components/popup/preview.vue?3295","webpack://vue-component-library/./src/components/popup/preview.vue?67df","webpack://vue-component-library/./src/components/index.js","webpack://vue-component-library/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-component-library\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"vue-component-library\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__7203__) {\nreturn ","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.32.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.32.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2016 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @website http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n* @version 4.1.11 (2016-03-31)\r\n*******************************************************************************/\r\nconst IMAGE_ALIGN_TOP = require('./plugins/image/images/align_top.gif');\r\nconst IMAGE_ALIGN_LEFT = require('./plugins/image/images/align_left.gif');\r\nconst IMAGE_ALIGN_RIGHT = require('./plugins/image/images/align_right.gif');\r\n\r\n(function (window, undefined) {\r\n\tif (window.KindEditor) {\r\n\t\treturn;\r\n\t}\r\n\n\r\nif (!window.console) {\r\n\twindow.console = {};\r\n}\r\nif (!console.log) {\r\n\tconsole.log = function () {};\r\n}\r\nvar _VERSION = '4.1.11 (2016-03-31)',\r\n\t_ua = navigator.userAgent.toLowerCase(),\r\n\t_IE = _ua.indexOf('msie') > -1 && _ua.indexOf('opera') == -1,\r\n\t_NEWIE = _ua.indexOf('msie') == -1 && _ua.indexOf('trident') > -1,\r\n\t_GECKO = _ua.indexOf('gecko') > -1 && _ua.indexOf('khtml') == -1,\r\n\t_WEBKIT = _ua.indexOf('applewebkit') > -1,\r\n\t_OPERA = _ua.indexOf('opera') > -1,\r\n\t_MOBILE = _ua.indexOf('mobile') > -1,\r\n\t_IOS = /ipad|iphone|ipod/.test(_ua),\r\n\t_QUIRKS = document.compatMode != 'CSS1Compat',\r\n\t_IERANGE = !window.getSelection,\r\n\t_matches = /(?:msie|firefox|webkit|opera)[\\/:\\s](\\d+)/.exec(_ua),\r\n\t_V = _matches ? _matches[1] : '0',\r\n\t_TIME = new Date().getTime();\r\nfunction _isArray(val) {\r\n\tif (!val) {\r\n\t\treturn false;\r\n\t}\r\n\treturn Object.prototype.toString.call(val) === '[object Array]';\r\n}\r\nfunction _isFunction(val) {\r\n\tif (!val) {\r\n\t\treturn false;\r\n\t}\r\n\treturn Object.prototype.toString.call(val) === '[object Function]';\r\n}\r\nfunction _inArray(val, arr) {\r\n\tfor (var i = 0, len = arr.length; i < len; i++) {\r\n\t\tif (val === arr[i]) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\nfunction _each(obj, fn) {\r\n\tif (_isArray(obj)) {\r\n\t\tfor (var i = 0, len = obj.length; i < len; i++) {\r\n\t\t\tif (fn.call(obj[i], i, obj[i]) === false) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\tfor (var key in obj) {\r\n\t\t\tif (obj.hasOwnProperty(key)) {\r\n\t\t\t\tif (fn.call(obj[key], key, obj[key]) === false) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\nfunction _trim(str) {\r\n\treturn str.replace(/(?:^[ \\t\\n\\r]+)|(?:[ \\t\\n\\r]+$)/g, '');\r\n}\r\nfunction _inString(val, str, delimiter) {\r\n\tdelimiter = delimiter === undefined ? ',' : delimiter;\r\n\treturn (delimiter + str + delimiter).indexOf(delimiter + val + delimiter) >= 0;\r\n}\r\nfunction _addUnit(val, unit) {\r\n\tunit = unit || 'px';\r\n\treturn val && /^-?\\d+(?:\\.\\d+)?$/.test(val) ? val + unit : val;\r\n}\r\nfunction _removeUnit(val) {\r\n\tvar match;\r\n\treturn val && (match = /(\\d+)/.exec(val)) ? parseInt(match[1], 10) : 0;\r\n}\r\nfunction _escape(val) {\r\n\treturn val.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\r\n}\r\nfunction _unescape(val) {\r\n\treturn val.replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '\"').replace(/&/g, '&');\r\n}\r\nfunction _toCamel(str) {\r\n\tvar arr = str.split('-');\r\n\tstr = '';\r\n\t_each(arr, function(key, val) {\r\n\t\tstr += (key > 0) ? val.charAt(0).toUpperCase() + val.substr(1) : val;\r\n\t});\r\n\treturn str;\r\n}\r\nfunction _toHex(val) {\r\n\tfunction hex(d) {\r\n\t\tvar s = parseInt(d, 10).toString(16).toUpperCase();\r\n\t\treturn s.length > 1 ? s : '0' + s;\r\n\t}\r\n\treturn val.replace(/rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/ig,\r\n\t\tfunction($0, $1, $2, $3) {\r\n\t\t\treturn '#' + hex($1) + hex($2) + hex($3);\r\n\t\t}\r\n\t);\r\n}\r\nfunction _toMap(val, delimiter) {\r\n\tdelimiter = delimiter === undefined ? ',' : delimiter;\r\n\tvar map = {}, arr = _isArray(val) ? val : val.split(delimiter), match;\r\n\t_each(arr, function(key, val) {\r\n\t\tif ((match = /^(\\d+)\\.\\.(\\d+)$/.exec(val))) {\r\n\t\t\tfor (var i = parseInt(match[1], 10); i <= parseInt(match[2], 10); i++) {\r\n\t\t\t\tmap[i.toString()] = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tmap[val] = true;\r\n\t\t}\r\n\t});\r\n\treturn map;\r\n}\r\nfunction _toArray(obj, offset) {\r\n\treturn Array.prototype.slice.call(obj, offset || 0);\r\n}\r\nfunction _undef(val, defaultVal) {\r\n\treturn val === undefined ? defaultVal : val;\r\n}\r\nfunction _invalidUrl(url) {\r\n\treturn !url || /[<>\"]/.test(url);\r\n}\r\nfunction _addParam(url, param) {\r\n\treturn url.indexOf('?') >= 0 ? url + '&' + param : url + '?' + param;\r\n}\r\nfunction _extend(child, parent, proto) {\r\n\tif (!proto) {\r\n\t\tproto = parent;\r\n\t\tparent = null;\r\n\t}\r\n\tvar childProto;\r\n\tif (parent) {\r\n\t\tvar fn = function () {};\r\n\t\tfn.prototype = parent.prototype;\r\n\t\tchildProto = new fn();\r\n\t\t_each(proto, function(key, val) {\r\n\t\t\tchildProto[key] = val;\r\n\t\t});\r\n\t} else {\r\n\t\tchildProto = proto;\r\n\t}\r\n\tchildProto.constructor = child;\r\n\tchild.prototype = childProto;\r\n\tchild.parent = parent ? parent.prototype : null;\r\n}\r\n\r\r\nfunction _json(text) {\r\n\tvar match;\r\n\tif ((match = /\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\]/.exec(text))) {\r\n\t\ttext = match[0];\r\n\t}\r\n\tvar cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\r\n\tcx.lastIndex = 0;\r\n\tif (cx.test(text)) {\r\n\t\ttext = text.replace(cx, function (a) {\r\n\t\t\treturn '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\r\n\t\t});\r\n\t}\r\n\tif (/^[\\],:{}\\s]*$/.\r\n\ttest(text.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').\r\n\treplace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, ']').\r\n\treplace(/(?:^|:|,)(?:\\s*\\[)+/g, ''))) {\r\n\t\treturn eval('(' + text + ')');\r\n\t}\r\n\tthrow 'JSON parse error';\r\n}\r\nvar _round = Math.round;\r\nvar K = {\r\n\tDEBUG : false,\r\n\tVERSION : _VERSION,\r\n\tIE : _IE,\r\n\tGECKO : _GECKO,\r\n\tWEBKIT : _WEBKIT,\r\n\tOPERA : _OPERA,\r\n\tV : _V,\r\n\tTIME : _TIME,\r\n\teach : _each,\r\n\tisArray : _isArray,\r\n\tisFunction : _isFunction,\r\n\tinArray : _inArray,\r\n\tinString : _inString,\r\n\ttrim : _trim,\r\n\taddUnit : _addUnit,\r\n\tremoveUnit : _removeUnit,\r\n\tescape : _escape,\r\n\tunescape : _unescape,\r\n\ttoCamel : _toCamel,\r\n\ttoHex : _toHex,\r\n\ttoMap : _toMap,\r\n\ttoArray : _toArray,\r\n\tundef : _undef,\r\n\tinvalidUrl : _invalidUrl,\r\n\taddParam : _addParam,\r\n\textend : _extend,\r\n\tjson : _json\r\n};\r\nvar _INLINE_TAG_MAP = _toMap('a,abbr,acronym,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,img,input,ins,kbd,label,map,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'),\r\n\t_BLOCK_TAG_MAP = _toMap('address,applet,blockquote,body,center,dd,dir,div,dl,dt,fieldset,form,frameset,h1,h2,h3,h4,h5,h6,head,hr,html,iframe,ins,isindex,li,map,menu,meta,noframes,noscript,object,ol,p,pre,script,style,table,tbody,td,tfoot,th,thead,title,tr,ul'),\r\n\t_SINGLE_TAG_MAP = _toMap('area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed'),\r\n\t_STYLE_TAG_MAP = _toMap('b,basefont,big,del,em,font,i,s,small,span,strike,strong,sub,sup,u'),\r\n\t_CONTROL_TAG_MAP = _toMap('img,table,input,textarea,button'),\r\n\t_PRE_TAG_MAP = _toMap('pre,style,script'),\r\n\t_NOSPLIT_TAG_MAP = _toMap('html,head,body,td,tr,table,ol,ul,li'),\r\n\t_AUTOCLOSE_TAG_MAP = _toMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'),\r\n\t_FILL_ATTR_MAP = _toMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'),\r\n\t_VALUE_TAG_MAP = _toMap('input,button,textarea,select');\r\n\n\r\nfunction _getBasePath() {\r\n\tvar els = document.getElementsByTagName('script'), src;\r\n\tfor (var i = 0, len = els.length; i < len; i++) {\r\n\t\tsrc = els[i].src || '';\r\n\t\tif (/kindeditor[\\w\\-\\.]*\\.js/.test(src)) {\r\n\t\t\treturn src.substring(0, src.lastIndexOf('/') + 1);\r\n\t\t}\r\n\t}\r\n\treturn '';\r\n}\r\nK.basePath = _getBasePath();\r\nK.options = {\r\n\tdesignMode : true,\r\n\tfullscreenMode : false,\r\n\tfilterMode : false,\r\n\twellFormatMode : true,\r\n\tshadowMode : true,\r\n\tloadStyleMode : true,\r\n\tbasePath : K.basePath,\r\n\tthemesPath : K.basePath + 'themes/',\r\n\tlangPath : K.basePath + 'lang/',\r\n\tpluginsPath : K.basePath + 'plugins/',\r\n\tthemeType : 'default',\r\n\tlangType : 'zh-CN',\r\n\turlType : '',\r\n\tnewlineTag : 'p',\r\n\tresizeType : 2,\r\n\tsyncType : 'form',\r\n\tpasteType : 2,\r\n\tdialogAlignType : 'page',\r\n\tuseContextmenu : true,\r\n\tfullscreenShortcut : false,\r\n\tbodyClass : 'ke-content',\r\n\tindentChar : '\\t',\r\n\tcssPath : '',\r\n\tcssData : '',\r\n\tminWidth : 650,\r\n\tminHeight : 100,\r\n\tminChangeSize : 50,\r\n\tzIndex : 811213,\r\n\titems : [\r\n\t\t'source', '|', 'undo', 'redo', '|', \r\n\t\t'formatblock', 'fontname', 'fontsize', 'forecolor', 'hilitecolor', 'bold',\r\n\t\t'italic', 'underline', 'strikethrough', 'removeformat', '|',\r\n\t\t'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', '|',\r\n\t\t'indent', 'outdent', 'subscript', 'superscript', '|', 'uploadImage'\r\n\t],\r\n\tnoDisableItems : ['source', 'fullscreen'],\r\n\tcolorTable : [\r\n\t\t['#E53333', '#E56600', '#FF9900', '#64451D', '#DFC5A4', '#FFE500'],\r\n\t\t['#009900', '#006600', '#99BB00', '#B8D100', '#60D978', '#00D5FF'],\r\n\t\t['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'],\r\n\t\t['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000']\r\n\t],\r\n\tfontSizeTable : ['9px', '10px', '12px', '14px', '16px', '18px', '24px', '32px'],\r\n\thtmlTags : {\r\n\t\tfont : ['id', 'class', 'color', 'size', 'face', '.background-color'],\r\n\t\tspan : [\r\n\t\t\t'id', 'class', '.color', '.background-color', '.font-size', '.font-family', '.background',\r\n\t\t\t'.font-weight', '.font-style', '.text-decoration', '.vertical-align', '.line-height'\r\n\t\t],\r\n\t\tdiv : [\r\n\t\t\t'id', 'class', 'align', '.border', '.margin', '.padding', '.text-align', '.color',\r\n\t\t\t'.background-color', '.font-size', '.font-family', '.font-weight', '.background',\r\n\t\t\t'.font-style', '.text-decoration', '.vertical-align', '.margin-left'\r\n\t\t],\r\n\t\ttable: [\r\n\t\t\t'id', 'class', 'border', 'cellspacing', 'cellpadding', 'width', 'height', 'align', 'bordercolor',\r\n\t\t\t'.padding', '.margin', '.border', 'bgcolor', '.text-align', '.color', '.background-color',\r\n\t\t\t'.font-size', '.font-family', '.font-weight', '.font-style', '.text-decoration', '.background',\r\n\t\t\t'.width', '.height', '.border-collapse'\r\n\t\t],\r\n\t\t'td,th': [\r\n\t\t\t'id', 'class', 'align', 'valign', 'width', 'height', 'colspan', 'rowspan', 'bgcolor',\r\n\t\t\t'.text-align', '.color', '.background-color', '.font-size', '.font-family', '.font-weight',\r\n\t\t\t'.font-style', '.text-decoration', '.vertical-align', '.background', '.border'\r\n\t\t],\r\n\t\ta : ['id', 'class', 'href', 'target', 'name'],\r\n\t\tembed : ['id', 'class', 'src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess', 'wmode'],\r\n\t\timg : ['id', 'class', 'src', 'width', 'height', 'border', 'alt', 'title', 'align', '.width', '.height', '.border'],\r\n\t\t'p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [\r\n\t\t\t'id', 'class', 'align', '.text-align', '.color', '.background-color', '.font-size', '.font-family', '.background',\r\n\t\t\t'.font-weight', '.font-style', '.text-decoration', '.vertical-align', '.text-indent', '.margin-left'\r\n\t\t],\r\n\t\tpre : ['id', 'class'],\r\n\t\thr : ['id', 'class', '.page-break-after'],\r\n\t\t'br,tbody,tr,strong,b,sub,sup,em,i,u,strike,s,del' : ['id', 'class'],\r\n\t\tiframe : ['id', 'class', 'src', 'frameborder', 'width', 'height', '.width', '.height']\r\n\t},\r\n\tlayout : '<div class=\"container\"><div class=\"toolbar\"></div><div class=\"edit\"></div><div class=\"statusbar\"></div></div>'\r\n};\r\n\n\r\nvar _useCapture = false;\r\n\r\r\nvar _INPUT_KEY_MAP = _toMap('8,9,13,32,46,48..57,59,61,65..90,106,109..111,188,190..192,219..222');\r\r\nvar _CURSORMOVE_KEY_MAP = _toMap('33..40');\r\r\nvar _CHANGE_KEY_MAP = {};\r\n_each(_INPUT_KEY_MAP, function(key, val) {\r\n\t_CHANGE_KEY_MAP[key] = val;\r\n});\r\n_each(_CURSORMOVE_KEY_MAP, function(key, val) {\r\n\t_CHANGE_KEY_MAP[key] = val;\r\n});\r\n\r\r\nfunction _bindEvent(el, type, fn) {\r\n\tif (el.addEventListener){\r\n\t\tel.addEventListener(type, fn, _useCapture);\r\n\t} else if (el.attachEvent){\r\n\t\tel.attachEvent('on' + type, fn);\r\n\t}\r\n}\r\r\nfunction _unbindEvent(el, type, fn) {\r\n\tif (el.removeEventListener){\r\n\t\tel.removeEventListener(type, fn, _useCapture);\r\n\t} else if (el.detachEvent){\r\n\t\tel.detachEvent('on' + type, fn);\r\n\t}\r\n}\r\nvar _EVENT_PROPS = ('altKey,attrChange,attrName,bubbles,button,cancelable,charCode,clientX,clientY,ctrlKey,currentTarget,' +\r\n\t'data,detail,eventPhase,fromElement,handler,keyCode,metaKey,newValue,offsetX,offsetY,originalTarget,pageX,' +\r\n\t'pageY,prevValue,relatedNode,relatedTarget,screenX,screenY,shiftKey,srcElement,target,toElement,view,wheelDelta,which').split(',');\r\n\r\r\nfunction KEvent(el, event) {\r\n\tthis.init(el, event);\r\n}\r\n_extend(KEvent, {\r\n\tinit : function(el, event) {\r\n\t\tvar self = this, doc = el.ownerDocument || el.document || el;\r\n\t\tself.event = event;\r\n\t\t_each(_EVENT_PROPS, function(key, val) {\r\n\t\t\tself[val] = event[val];\r\n\t\t});\r\n\t\tif (!self.target) {\r\n\t\t\tself.target = self.srcElement || doc;\r\n\t\t}\r\n\t\tif (self.target.nodeType === 3) {\r\n\t\t\tself.target = self.target.parentNode;\r\n\t\t}\r\n\t\tif (!self.relatedTarget && self.fromElement) {\r\n\t\t\tself.relatedTarget = self.fromElement === self.target ? self.toElement : self.fromElement;\r\n\t\t}\r\n\t\tif (self.pageX == null && self.clientX != null) {\r\n\t\t\tvar d = doc.documentElement, body = doc.body;\r\n\t\t\tself.pageX = self.clientX + (d && d.scrollLeft || body && body.scrollLeft || 0) - (d && d.clientLeft || body && body.clientLeft || 0);\r\n\t\t\tself.pageY = self.clientY + (d && d.scrollTop || body && body.scrollTop || 0) - (d && d.clientTop || body && body.clientTop || 0);\r\n\t\t}\r\n\t\tif (!self.which && ((self.charCode || self.charCode === 0) ? self.charCode : self.keyCode)) {\r\n\t\t\tself.which = self.charCode || self.keyCode;\r\n\t\t}\r\n\t\tif (!self.metaKey && self.ctrlKey) {\r\n\t\t\tself.metaKey = self.ctrlKey;\r\n\t\t}\r\n\t\tif (!self.which && self.button !== undefined) {\r\n\t\t\tself.which = (self.button & 1 ? 1 : (self.button & 2 ? 3 : (self.button & 4 ? 2 : 0)));\r\n\t\t}\r\n\t\tswitch (self.which) {\r\n\t\tcase 186 :\r\n\t\t\tself.which = 59;\r\n\t\t\tbreak;\r\n\t\tcase 187 :\r\n\t\tcase 107 :\r\n\t\tcase 43 :\r\n\t\t\tself.which = 61;\r\n\t\t\tbreak;\r\n\t\tcase 189 :\r\n\t\tcase 45 :\r\n\t\t\tself.which = 109;\r\n\t\t\tbreak;\r\n\t\tcase 42 :\r\n\t\t\tself.which = 106;\r\n\t\t\tbreak;\r\n\t\tcase 47 :\r\n\t\t\tself.which = 111;\r\n\t\t\tbreak;\r\n\t\tcase 78 :\r\n\t\t\tself.which = 110;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tif (self.which >= 96 && self.which <= 105) {\r\n\t\t\tself.which -= 48;\r\n\t\t}\r\n\t},\r\n\tpreventDefault : function() {\r\n\t\tvar ev = this.event;\r\n\t\tif (ev.preventDefault) {\r\n\t\t\tev.preventDefault();\r\n\t\t} else {\r\n\t\t\tev.returnValue = false;\r\n\t\t}\r\n\t},\r\n\tstopPropagation : function() {\r\n\t\tvar ev = this.event;\r\n\t\tif (ev.stopPropagation) {\r\n\t\t\tev.stopPropagation();\r\n\t\t} else {\r\n\t\t\tev.cancelBubble = true;\r\n\t\t}\r\n\t},\r\n\tstop : function() {\r\n\t\tthis.preventDefault();\r\n\t\tthis.stopPropagation();\r\n\t}\r\n});\r\nvar _eventExpendo = 'kindeditor_' + _TIME, _eventId = 0, _eventData = {};\r\nfunction _getId(el) {\r\n\treturn el[_eventExpendo] || null;\r\n}\r\nfunction _setId(el) {\r\n\tel[_eventExpendo] = ++_eventId;\r\n\treturn _eventId;\r\n}\r\nfunction _removeId(el) {\r\n\ttry {\r\n\t\tdelete el[_eventExpendo];\r\n\t} catch(e) {\r\n\t\tif (el.removeAttribute) {\r\n\t\t\tel.removeAttribute(_eventExpendo);\r\n\t\t}\r\n\t}\r\n}\r\nfunction _bind(el, type, fn) {\r\n\tif (type.indexOf(',') >= 0) {\r\n\t\t_each(type.split(','), function() {\r\n\t\t\t_bind(el, this, fn);\r\n\t\t});\r\n\t\treturn;\r\n\t}\r\n\tvar id = _getId(el);\r\n\tif (!id) {\r\n\t\tid = _setId(el);\r\n\t}\r\n\tif (_eventData[id] === undefined) {\r\n\t\t_eventData[id] = {};\r\n\t}\r\n\tvar events = _eventData[id][type];\r\n\tif (events && events.length > 0) {\r\n\t\t_unbindEvent(el, type, events[0]);\r\n\t} else {\r\n\t\t_eventData[id][type] = [];\r\n\t\t_eventData[id].el = el;\r\n\t}\r\n\tevents = _eventData[id][type];\r\n\tif (events.length === 0) {\r\n\t\tevents[0] = function(e) {\r\n\t\t\tvar kevent = e ? new KEvent(el, e) : undefined;\r\n\t\t\t_each(events, function(i, event) {\r\n\t\t\t\tif (i > 0 && event) {\r\n\t\t\t\t\tevent.call(el, kevent);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\tif (_inArray(fn, events) < 0) {\r\n\t\tevents.push(fn);\r\n\t}\r\n\t_bindEvent(el, type, events[0]);\r\n}\r\nfunction _unbind(el, type, fn) {\r\n\tif (type && type.indexOf(',') >= 0) {\r\n\t\t_each(type.split(','), function() {\r\n\t\t\t_unbind(el, this, fn);\r\n\t\t});\r\n\t\treturn;\r\n\t}\r\n\tvar id = _getId(el);\r\n\tif (!id) {\r\n\t\treturn;\r\n\t}\r\n\tif (type === undefined) {\r\n\t\tif (id in _eventData) {\r\n\t\t\t_each(_eventData[id], function(key, events) {\r\n\t\t\t\tif (key != 'el' && events.length > 0) {\r\n\t\t\t\t\t_unbindEvent(el, key, events[0]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tdelete _eventData[id];\r\n\t\t\t_removeId(el);\r\n\t\t}\r\n\t\treturn;\r\n\t}\r\n\tif (!_eventData[id]) {\r\n\t\treturn;\r\n\t}\r\n\tvar events = _eventData[id][type];\r\n\tif (events && events.length > 0) {\r\n\t\tif (fn === undefined) {\r\n\t\t\t_unbindEvent(el, type, events[0]);\r\n\t\t\tdelete _eventData[id][type];\r\n\t\t} else {\r\n\t\t\t_each(events, function(i, event) {\r\n\t\t\t\tif (i > 0 && event === fn) {\r\n\t\t\t\t\tevents.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (events.length == 1) {\r\n\t\t\t\t_unbindEvent(el, type, events[0]);\r\n\t\t\t\tdelete _eventData[id][type];\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar count = 0;\r\n\t\t_each(_eventData[id], function() {\r\n\t\t\tcount++;\r\n\t\t});\r\n\t\tif (count < 2) {\r\n\t\t\tdelete _eventData[id];\r\n\t\t\t_removeId(el);\r\n\t\t}\r\n\t}\r\n}\r\nfunction _fire(el, type) {\r\n\tif (type.indexOf(',') >= 0) {\r\n\t\t_each(type.split(','), function() {\r\n\t\t\t_fire(el, this);\r\n\t\t});\r\n\t\treturn;\r\n\t}\r\n\tvar id = _getId(el);\r\n\tif (!id) {\r\n\t\treturn;\r\n\t}\r\n\tvar events = _eventData[id][type];\r\n\tif (_eventData[id] && events && events.length > 0) {\r\n\t\tevents[0]();\r\n\t}\r\n}\r\nfunction _ctrl(el, key, fn) {\r\n\tvar self = this;\r\n\tkey = /^\\d{2,}$/.test(key) ? key : key.toUpperCase().charCodeAt(0);\r\n\t_bind(el, 'keydown', function(e) {\r\n\t\tif (e.ctrlKey && e.which == key && !e.shiftKey && !e.altKey) {\r\n\t\t\tfn.call(el);\r\n\t\t\te.stop();\r\n\t\t}\r\n\t});\r\n}\r\nvar _readyFinished = false;\r\nfunction _ready(fn) {\r\n\tif (_readyFinished) {\r\n\t\tfn(KindEditor);\r\n\t\treturn;\r\n\t}\r\n\tvar loaded = false;\r\n\tfunction readyFunc() {\r\n\t\tif (!loaded) {\r\n\t\t\tloaded = true;\r\n\t\t\tfn(KindEditor);\r\n\t\t\t_readyFinished = true;\r\n\t\t}\r\n\t}\r\n\tfunction ieReadyFunc() {\r\n\t\tif (!loaded) {\r\n\t\t\ttry {\r\n\t\t\t\tdocument.documentElement.doScroll('left');\r\n\t\t\t} catch(e) {\r\n\t\t\t\tsetTimeout(ieReadyFunc, 100);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treadyFunc();\r\n\t\t}\r\n\t}\r\n\tfunction ieReadyStateFunc() {\r\n\t\tif (document.readyState === 'complete') {\r\n\t\t\treadyFunc();\r\n\t\t}\r\n\t}\r\n\tif (document.addEventListener) {\r\n\t\t_bind(document, 'DOMContentLoaded', readyFunc);\r\n\t} else if (document.attachEvent) {\r\n\t\t_bind(document, 'readystatechange', ieReadyStateFunc);\r\n\t\tvar toplevel = false;\r\n\t\ttry {\r\n\t\t\ttoplevel = window.frameElement == null;\r\n\t\t} catch(e) {}\r\n\t\tif (document.documentElement.doScroll && toplevel) {\r\n\t\t\tieReadyFunc();\r\n\t\t}\r\n\t}\r\n\t_bind(window, 'load', readyFunc);\r\n}\r\nif (window.attachEvent) {\r\n\twindow.attachEvent('onunload', function() {\r\n\t\t_each(_eventData, function(key, events) {\r\n\t\t\tif (events.el) {\r\n\t\t\t\t_unbind(events.el);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\nK.ctrl = _ctrl;\r\nK.ready = _ready;\r\n\nfunction _getCssList(css) {\r\n\tvar list = {},\r\n\t\treg = /\\s*([\\w\\-]+)\\s*:([^;]*)(;|$)/g,\r\n\t\tmatch;\r\n\twhile ((match = reg.exec(css))) {\r\n\t\tvar key = _trim(match[1].toLowerCase()),\r\n\t\t\tval = _trim(_toHex(match[2]));\r\n\t\tlist[key] = val;\r\n\t}\r\n\treturn list;\r\n}\r\nfunction _getAttrList(tag) {\r\n\tvar list = {},\r\n\t\treg = /\\s+(?:([\\w\\-:]+)|(?:([\\w\\-:]+)=([^\\s\"'<>]+))|(?:([\\w\\-:\"]+)=\"([^\"]*)\")|(?:([\\w\\-:\"]+)='([^']*)'))(?=(?:\\s|\\/|>)+)/g,\r\n\t\tmatch;\r\n\twhile ((match = reg.exec(tag))) {\r\n\t\tvar key = (match[1] || match[2] || match[4] || match[6]).toLowerCase(),\r\n\t\t\tval = (match[2] ? match[3] : (match[4] ? match[5] : match[7])) || '';\r\n\t\tlist[key] = val;\r\n\t}\r\n\treturn list;\r\n}\r\nfunction _addClassToTag(tag, className) {\r\n\tif (/\\s+class\\s*=/.test(tag)) {\r\n\t\ttag = tag.replace(/(\\s+class=[\"']?)([^\"']*)([\"']?[\\s>])/, function($0, $1, $2, $3) {\r\n\t\t\tif ((' ' + $2 + ' ').indexOf(' ' + className + ' ') < 0) {\r\n\t\t\t\treturn $2 === '' ? $1 + className + $3 : $1 + $2 + ' ' + className + $3;\r\n\t\t\t} else {\r\n\t\t\t\treturn $0;\r\n\t\t\t}\r\n\t\t});\r\n\t} else {\r\n\t\ttag = tag.substr(0, tag.length - 1) + ' class=\"' + className + '\">';\r\n\t}\r\n\treturn tag;\r\n}\r\nfunction _formatCss(css) {\r\n\tvar str = '';\r\n\t_each(_getCssList(css), function(key, val) {\r\n\t\tstr += key + ':' + val + ';';\r\n\t});\r\n\treturn str;\r\n}\r\nfunction _formatUrl(url, mode, host, pathname) {\r\n\tmode = _undef(mode, '').toLowerCase();\r\n\tif (url.substr(0, 5) != 'data:') {\r\n\t\turl = url.replace(/([^:])\\/\\//g, '$1/');\r\n\t}\r\n\tif (_inArray(mode, ['absolute', 'relative', 'domain']) < 0) {\r\n\t\treturn url;\r\n\t}\r\n\thost = host || location.protocol + '//' + location.host;\r\n\tif (pathname === undefined) {\r\n\t\tvar m = location.pathname.match(/^(\\/.*)\\//);\r\n\t\tpathname = m ? m[1] : '';\r\n\t}\r\n\tvar match;\r\n\tif ((match = /^(\\w+:\\/\\/[^\\/]*)/.exec(url))) {\r\n\t\tif (match[1] !== host) {\r\n\t\t\treturn url;\r\n\t\t}\r\n\t} else if (/^\\w+:/.test(url)) {\r\n\t\treturn url;\r\n\t}\r\n\tfunction getRealPath(path) {\r\n\t\tvar parts = path.split('/'), paths = [];\r\n\t\tfor (var i = 0, len = parts.length; i < len; i++) {\r\n\t\t\tvar part = parts[i];\r\n\t\t\tif (part == '..') {\r\n\t\t\t\tif (paths.length > 0) {\r\n\t\t\t\t\tpaths.pop();\r\n\t\t\t\t}\r\n\t\t\t} else if (part !== '' && part != '.') {\r\n\t\t\t\tpaths.push(part);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '/' + paths.join('/');\r\n\t}\r\n\tif (/^\\//.test(url)) {\r\n\t\turl = host + getRealPath(url.substr(1));\r\n\t} else if (!/^\\w+:\\/\\//.test(url)) {\r\n\t\turl = host + getRealPath(pathname + '/' + url);\r\n\t}\r\n\tfunction getRelativePath(path, depth) {\r\n\t\tif (url.substr(0, path.length) === path) {\r\n\t\t\tvar arr = [];\r\n\t\t\tfor (var i = 0; i < depth; i++) {\r\n\t\t\t\tarr.push('..');\r\n\t\t\t}\r\n\t\t\tvar prefix = '.';\r\n\t\t\tif (arr.length > 0) {\r\n\t\t\t\tprefix += '/' + arr.join('/');\r\n\t\t\t}\r\n\t\t\tif (pathname == '/') {\r\n\t\t\t\tprefix += '/';\r\n\t\t\t}\r\n\t\t\treturn prefix + url.substr(path.length);\r\n\t\t} else {\r\n\t\t\tif ((match = /^(.*)\\//.exec(path))) {\r\n\t\t\t\treturn getRelativePath(match[1], ++depth);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (mode === 'relative') {\r\n\t\turl = getRelativePath(host + pathname, 0).substr(2);\r\n\t} else if (mode === 'absolute') {\r\n\t\tif (url.substr(0, host.length) === host) {\r\n\t\t\turl = url.substr(host.length);\r\n\t\t}\r\n\t}\r\n\treturn url;\r\n}\r\nfunction _formatHtml(html, htmlTags, urlType, wellFormatted, indentChar) {\r\n\tif (html == null) {\r\n\t\thtml = '';\r\n\t}\r\n\turlType = urlType || '';\r\n\twellFormatted = _undef(wellFormatted, false);\r\n\tindentChar = _undef(indentChar, '\\t');\r\n\tvar fontSizeList = 'xx-small,x-small,small,medium,large,x-large,xx-large'.split(',');\r\n\thtml = html.replace(/(<(?:pre|pre\\s[^>]*)>)([\\s\\S]*?)(<\\/pre>)/ig, function($0, $1, $2, $3) {\r\n\t\treturn $1 + $2.replace(/<(?:br|br\\s[^>]*)>/ig, '\\n') + $3;\r\n\t});\r\n\thtml = html.replace(/<(?:br|br\\s[^>]*)\\s*\\/?>\\s*<\\/p>/ig, '</p>');\r\n\thtml = html.replace(/(<(?:p|p\\s[^>]*)>)\\s*(<\\/p>)/ig, '$1<br />$2');\r\n\thtml = html.replace(/\\u200B/g, '');\r\n\thtml = html.replace(/\\u00A9/g, '©');\r\n\thtml = html.replace(/\\u00AE/g, '®');\r\n\thtml = html.replace(/\\u2003/g, ' ');\r\n\thtml = html.replace(/\\u3000/g, ' ');\r\n\thtml = html.replace(/<[^>]+/g, function($0) {\r\n\t\treturn $0.replace(/\\s+/g, ' ');\r\n\t});\r\n\tvar htmlTagMap = {};\r\n\tif (htmlTags) {\r\n\t\t_each(htmlTags, function(key, val) {\r\n\t\t\tvar arr = key.split(',');\r\n\t\t\tfor (var i = 0, len = arr.length; i < len; i++) {\r\n\t\t\t\thtmlTagMap[arr[i]] = _toMap(val);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (!htmlTagMap.script) {\r\n\t\t\thtml = html.replace(/(<(?:script|script\\s[^>]*)>)([\\s\\S]*?)(<\\/script>)/ig, '');\r\n\t\t}\r\n\t\tif (!htmlTagMap.style) {\r\n\t\t\thtml = html.replace(/(<(?:style|style\\s[^>]*)>)([\\s\\S]*?)(<\\/style>)/ig, '');\r\n\t\t}\r\n\t}\r\n\tvar re = /(\\s*)<(\\/)?([\\w\\-:]+)((?:\\s+|(?:\\s+[\\w\\-:]+)|(?:\\s+[\\w\\-:]+=[^\\s\"'<>]+)|(?:\\s+[\\w\\-:\"]+=\"[^\"]*\")|(?:\\s+[\\w\\-:\"]+='[^']*'))*)(\\/)?>(\\s*)/g;\r\n\tvar tagStack = [];\r\n\thtml = html.replace(re, function($0, $1, $2, $3, $4, $5, $6) {\r\n\t\tvar full = $0,\r\n\t\t\tstartNewline = $1 || '',\r\n\t\t\tstartSlash = $2 || '',\r\n\t\t\ttagName = $3.toLowerCase(),\r\n\t\t\tattr = $4 || '',\r\n\t\t\tendSlash = $5 ? ' ' + $5 : '',\r\n\t\t\tendNewline = $6 || '';\r\n\t\tif (htmlTags && !htmlTagMap[tagName]) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tif (endSlash === '' && _SINGLE_TAG_MAP[tagName]) {\r\n\t\t\tendSlash = ' /';\r\n\t\t}\r\n\t\tif (_INLINE_TAG_MAP[tagName]) {\r\n\t\t\tif (startNewline) {\r\n\t\t\t\tstartNewline = ' ';\r\n\t\t\t}\r\n\t\t\tif (endNewline) {\r\n\t\t\t\tendNewline = ' ';\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (_PRE_TAG_MAP[tagName]) {\r\n\t\t\tif (startSlash) {\r\n\t\t\t\tendNewline = '\\n';\r\n\t\t\t} else {\r\n\t\t\t\tstartNewline = '\\n';\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (wellFormatted && tagName == 'br') {\r\n\t\t\tendNewline = '\\n';\r\n\t\t}\r\n\t\tif (_BLOCK_TAG_MAP[tagName] && !_PRE_TAG_MAP[tagName]) {\r\n\t\t\tif (wellFormatted) {\r\n\t\t\t\tif (startSlash && tagStack.length > 0 && tagStack[tagStack.length - 1] === tagName) {\r\n\t\t\t\t\ttagStack.pop();\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttagStack.push(tagName);\r\n\t\t\t\t}\r\n\t\t\t\tstartNewline = '\\n';\r\n\t\t\t\tendNewline = '\\n';\r\n\t\t\t\tfor (var i = 0, len = startSlash ? tagStack.length : tagStack.length - 1; i < len; i++) {\r\n\t\t\t\t\tstartNewline += indentChar;\r\n\t\t\t\t\tif (!startSlash) {\r\n\t\t\t\t\t\tendNewline += indentChar;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (endSlash) {\r\n\t\t\t\t\ttagStack.pop();\r\n\t\t\t\t} else if (!startSlash) {\r\n\t\t\t\t\tendNewline += indentChar;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tstartNewline = endNewline = '';\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (attr !== '') {\r\n\t\t\tvar attrMap = _getAttrList(full);\r\n\t\t\tif (tagName === 'font') {\r\n\t\t\t\tvar fontStyleMap = {}, fontStyle = '';\r\n\t\t\t\t_each(attrMap, function(key, val) {\r\n\t\t\t\t\tif (key === 'color') {\r\n\t\t\t\t\t\tfontStyleMap.color = val;\r\n\t\t\t\t\t\tdelete attrMap[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (key === 'size') {\r\n\t\t\t\t\t\tfontStyleMap['font-size'] = fontSizeList[parseInt(val, 10) - 1] || '';\r\n\t\t\t\t\t\tdelete attrMap[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (key === 'face') {\r\n\t\t\t\t\t\tfontStyleMap['font-family'] = val;\r\n\t\t\t\t\t\tdelete attrMap[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (key === 'style') {\r\n\t\t\t\t\t\tfontStyle = val;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (fontStyle && !/;$/.test(fontStyle)) {\r\n\t\t\t\t\tfontStyle += ';';\r\n\t\t\t\t}\r\n\t\t\t\t_each(fontStyleMap, function(key, val) {\r\n\t\t\t\t\tif (val === '') {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (/\\s/.test(val)) {\r\n\t\t\t\t\t\tval = \"'\" + val + \"'\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfontStyle += key + ':' + val + ';';\r\n\t\t\t\t});\r\n\t\t\t\tattrMap.style = fontStyle;\r\n\t\t\t}\r\n\t\t\t_each(attrMap, function(key, val) {\r\n\t\t\t\tif (_FILL_ATTR_MAP[key]) {\r\n\t\t\t\t\tattrMap[key] = key;\r\n\t\t\t\t}\r\n\t\t\t\tif (_inArray(key, ['src', 'href']) >= 0) {\r\n\t\t\t\t\tattrMap[key] = _formatUrl(val, urlType);\r\n\t\t\t\t}\r\n\t\t\t\tif (htmlTags && key !== 'style' && !htmlTagMap[tagName]['*'] && !htmlTagMap[tagName][key] ||\r\n\t\t\t\t\ttagName === 'body' && key === 'contenteditable' ||\r\n\t\t\t\t\t/^kindeditor_\\d+$/.test(key)) {\r\n\t\t\t\t\tdelete attrMap[key];\r\n\t\t\t\t}\r\n\t\t\t\tif (key === 'style' && val !== '') {\r\n\t\t\t\t\tvar styleMap = _getCssList(val);\r\n\t\t\t\t\t_each(styleMap, function(k, v) {\r\n\t\t\t\t\t\tif (htmlTags && !htmlTagMap[tagName].style && !htmlTagMap[tagName]['.' + k]) {\r\n\t\t\t\t\t\t\tdelete styleMap[k];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar style = '';\r\n\t\t\t\t\t_each(styleMap, function(k, v) {\r\n\t\t\t\t\t\tstyle += k + ':' + v + ';';\r\n\t\t\t\t\t});\r\n\t\t\t\t\tattrMap.style = style;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tattr = '';\r\n\t\t\t_each(attrMap, function(key, val) {\r\n\t\t\t\tif (key === 'style' && val === '') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tval = val.replace(/\"/g, '"');\r\n\t\t\t\tattr += ' ' + key + '=\"' + val + '\"';\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (tagName === 'font') {\r\n\t\t\ttagName = 'span';\r\n\t\t}\r\n\t\treturn startNewline + '<' + startSlash + tagName + attr + endSlash + '>' + endNewline;\r\n\t});\r\n\thtml = html.replace(/(<(?:pre|pre\\s[^>]*)>)([\\s\\S]*?)(<\\/pre>)/ig, function($0, $1, $2, $3) {\r\n\t\treturn $1 + $2.replace(/\\n/g, '<span id=\"__kindeditor_pre_newline__\">\\n') + $3;\r\n\t});\r\n\thtml = html.replace(/\\n\\s*\\n/g, '\\n');\r\n\thtml = html.replace(/<span id=\"__kindeditor_pre_newline__\">\\n/g, '\\n');\r\n\treturn _trim(html);\r\n}\r\r\nfunction _clearMsWord(html, htmlTags) {\r\n\thtml = html.replace(/<meta[\\s\\S]*?>/ig, '')\r\n\t\t.replace(/<![\\s\\S]*?>/ig, '')\r\n\t\t.replace(/<style[^>]*>[\\s\\S]*?<\\/style>/ig, '')\r\n\t\t.replace(/<script[^>]*>[\\s\\S]*?<\\/script>/ig, '')\r\n\t\t.replace(/<w:[^>]+>[\\s\\S]*?<\\/w:[^>]+>/ig, '')\r\n\t\t.replace(/<o:[^>]+>[\\s\\S]*?<\\/o:[^>]+>/ig, '')\r\n\t\t.replace(/<xml>[\\s\\S]*?<\\/xml>/ig, '')\r\n\t\t.replace(/<(?:table|td)[^>]*>/ig, function(full) {\r\n\t\t\treturn full.replace(/border-bottom:([#\\w\\s]+)/ig, 'border:$1');\r\n\t\t});\r\n\treturn _formatHtml(html, htmlTags);\r\n}\r\r\nfunction _mediaType(src) {\r\n\tif (/\\.(rm|rmvb)(\\?|$)/i.test(src)) {\r\n\t\treturn 'audio/x-pn-realaudio-plugin';\r\n\t}\r\n\tif (/\\.(swf|flv)(\\?|$)/i.test(src)) {\r\n\t\treturn 'application/x-shockwave-flash';\r\n\t}\r\n\treturn 'video/x-ms-asf-plugin';\r\n}\r\r\nfunction _mediaClass(type) {\r\n\tif (/realaudio/i.test(type)) {\r\n\t\treturn 'ke-rm';\r\n\t}\r\n\tif (/flash/i.test(type)) {\r\n\t\treturn 'ke-flash';\r\n\t}\r\n\treturn 'ke-media';\r\n}\r\nfunction _mediaAttrs(srcTag) {\r\n\treturn _getAttrList(unescape(srcTag));\r\n}\r\nfunction _mediaEmbed(attrs) {\r\n\tvar html = '<embed ';\r\n\t_each(attrs, function(key, val) {\r\n\t\thtml += key + '=\"' + val + '\" ';\r\n\t});\r\n\thtml += '/>';\r\n\treturn html;\r\n}\r\nfunction _mediaImg(blankPath, attrs) {\r\n\tvar width = attrs.width,\r\n\t\theight = attrs.height,\r\n\t\ttype = attrs.type || _mediaType(attrs.src),\r\n\t\tsrcTag = _mediaEmbed(attrs),\r\n\t\tstyle = '';\r\n\tif (/\\D/.test(width)) {\r\n\t\tstyle += 'width:' + width + ';';\r\n\t} else if (width > 0) {\r\n\t\tstyle += 'width:' + width + 'px;';\r\n\t}\r\n\tif (/\\D/.test(height)) {\r\n\t\tstyle += 'height:' + height + ';';\r\n\t} else if (height > 0) {\r\n\t\tstyle += 'height:' + height + 'px;';\r\n\t}\r\n\tvar html = '<img class=\"' + _mediaClass(type) + '\" src=\"' + blankPath + '\" ';\r\n\tif (style !== '') {\r\n\t\thtml += 'style=\"' + style + '\" ';\r\n\t}\r\n\thtml += 'data-ke-tag=\"' + escape(srcTag) + '\" alt=\"\" />';\r\n\treturn html;\r\n}\r\n\r\r\r\r\nfunction _tmpl(str, data) {\r\n\tvar fn = new Function(\"obj\",\r\n\t\t\"var p=[],print=function(){p.push.apply(p,arguments);};\" +\r\n\t\t\"with(obj){p.push('\" +\r\n\t\tstr.replace(/[\\r\\t\\n]/g, \" \")\r\n\t\t\t.split(\"<%\").join(\"\\t\")\r\n\t\t\t.replace(/((^|%>)[^\\t]*)'/g, \"$1\\r\")\r\n\t\t\t.replace(/\\t=(.*?)%>/g, \"',$1,'\")\r\n\t\t\t.split(\"\\t\").join(\"');\")\r\n\t\t\t.split(\"%>\").join(\"p.push('\")\r\n\t\t\t.split(\"\\r\").join(\"\\\\'\") + \"');}return p.join('');\");\r\n\treturn data ? fn(data) : fn;\r\n}\r\nK.formatUrl = _formatUrl;\r\nK.formatHtml = _formatHtml;\r\nK.getCssList = _getCssList;\r\nK.getAttrList = _getAttrList;\r\nK.mediaType = _mediaType;\r\nK.mediaAttrs = _mediaAttrs;\r\nK.mediaEmbed = _mediaEmbed;\r\nK.mediaImg = _mediaImg;\r\nK.clearMsWord = _clearMsWord;\r\nK.tmpl = _tmpl;\r\n\n\r\nfunction _contains(nodeA, nodeB) {\r\n\tif (nodeA.nodeType == 9 && nodeB.nodeType != 9) {\r\n\t\treturn true;\r\n\t}\r\n\twhile ((nodeB = nodeB.parentNode)) {\r\n\t\tif (nodeB == nodeA) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\nvar _getSetAttrDiv = document.createElement('div');\r\n_getSetAttrDiv.setAttribute('className', 't');\r\nvar _GET_SET_ATTRIBUTE = _getSetAttrDiv.className !== 't';\r\nfunction _getAttr(el, key) {\r\n\tkey = key.toLowerCase();\r\n\tvar val = null;\r\n\tif (!_GET_SET_ATTRIBUTE && el.nodeName.toLowerCase() != 'script') {\r\n\t\tvar div = el.ownerDocument.createElement('div');\r\n\t\tdiv.appendChild(el.cloneNode(false));\r\n\t\tvar list = _getAttrList(_unescape(div.innerHTML));\r\n\t\tif (key in list) {\r\n\t\t\tval = list[key];\r\n\t\t}\r\n\t} else {\r\n\t\ttry {\r\n\t\t\tval = el.getAttribute(key, 2);\r\n\t\t} catch(e) {\r\n\t\t\tval = el.getAttribute(key, 1);\r\n\t\t}\r\n\t}\r\n\tif (key === 'style' && val !== null) {\r\n\t\tval = _formatCss(val);\r\n\t}\r\n\treturn val;\r\n}\r\nfunction _queryAll(expr, root) {\r\n\tvar exprList = expr.split(',');\r\n\tif (exprList.length > 1) {\r\n\t\tvar mergedResults = [];\r\n\t\t_each(exprList, function() {\r\n\t\t\t_each(_queryAll(this, root), function() {\r\n\t\t\t\tif (_inArray(this, mergedResults) < 0) {\r\n\t\t\t\t\tmergedResults.push(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn mergedResults;\r\n\t}\r\n\troot = root || document;\r\n\tfunction escape(str) {\r\n\t\tif (typeof str != 'string') {\r\n\t\t\treturn str;\r\n\t\t}\r\n\t\treturn str.replace(/([^\\w\\-])/g, '\\\\$1');\r\n\t}\r\n\tfunction stripslashes(str) {\r\n\t\treturn str.replace(/\\\\/g, '');\r\n\t}\r\n\tfunction cmpTag(tagA, tagB) {\r\n\t\treturn tagA === '*' || tagA.toLowerCase() === escape(tagB.toLowerCase());\r\n\t}\r\n\tfunction byId(id, tag, root) {\r\n\t\tvar arr = [],\r\n\t\t\tdoc = root.ownerDocument || root,\r\n\t\t\tel = doc.getElementById(stripslashes(id));\r\n\t\tif (el) {\r\n\t\t\tif (cmpTag(tag, el.nodeName) && _contains(root, el)) {\r\n\t\t\t\tarr.push(el);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\tfunction byClass(className, tag, root) {\r\n\t\tvar doc = root.ownerDocument || root, arr = [], els, i, len, el;\r\n\t\tif (root.getElementsByClassName) {\r\n\t\t\tels = root.getElementsByClassName(stripslashes(className));\r\n\t\t\tfor (i = 0, len = els.length; i < len; i++) {\r\n\t\t\t\tel = els[i];\r\n\t\t\t\tif (cmpTag(tag, el.nodeName)) {\r\n\t\t\t\t\tarr.push(el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (doc.querySelectorAll) {\r\n\t\t\tels = doc.querySelectorAll((root.nodeName !== '#document' ? root.nodeName + ' ' : '') + tag + '.' + className);\r\n\t\t\tfor (i = 0, len = els.length; i < len; i++) {\r\n\t\t\t\tel = els[i];\r\n\t\t\t\tif (_contains(root, el)) {\r\n\t\t\t\t\tarr.push(el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tels = root.getElementsByTagName(tag);\r\n\t\t\tclassName = ' ' + className + ' ';\r\n\t\t\tfor (i = 0, len = els.length; i < len; i++) {\r\n\t\t\t\tel = els[i];\r\n\t\t\t\tif (el.nodeType == 1) {\r\n\t\t\t\t\tvar cls = el.className;\r\n\t\t\t\t\tif (cls && (' ' + cls + ' ').indexOf(className) > -1) {\r\n\t\t\t\t\t\tarr.push(el);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\tfunction byName(name, tag, root) {\r\n\t\tvar arr = [], doc = root.ownerDocument || root,\r\n\t\t\tels = doc.getElementsByName(stripslashes(name)), el;\r\n\t\tfor (var i = 0, len = els.length; i < len; i++) {\r\n\t\t\tel = els[i];\r\n\t\t\tif (cmpTag(tag, el.nodeName) && _contains(root, el)) {\r\n\t\t\t\tif (el.getAttribute('name') !== null) {\r\n\t\t\t\t\tarr.push(el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\tfunction byAttr(key, val, tag, root) {\r\n\t\tvar arr = [], els = root.getElementsByTagName(tag), el;\r\n\t\tfor (var i = 0, len = els.length; i < len; i++) {\r\n\t\t\tel = els[i];\r\n\t\t\tif (el.nodeType == 1) {\r\n\t\t\t\tif (val === null) {\r\n\t\t\t\t\tif (_getAttr(el, key) !== null) {\r\n\t\t\t\t\t\tarr.push(el);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (val === escape(_getAttr(el, key))) {\r\n\t\t\t\t\t\tarr.push(el);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\tfunction select(expr, root) {\r\n\t\tvar arr = [], matches;\r\n\t\tmatches = /^((?:\\\\.|[^.#\\s\\[<>])+)/.exec(expr);\r\n\t\tvar tag = matches ? matches[1] : '*';\r\n\t\tif ((matches = /#((?:[\\w\\-]|\\\\.)+)$/.exec(expr))) {\r\n\t\t\tarr = byId(matches[1], tag, root);\r\n\t\t} else if ((matches = /\\.((?:[\\w\\-]|\\\\.)+)$/.exec(expr))) {\r\n\t\t\tarr = byClass(matches[1], tag, root);\r\n\t\t} else if ((matches = /\\[((?:[\\w\\-]|\\\\.)+)\\]/.exec(expr))) {\r\n\t\t\tarr = byAttr(matches[1].toLowerCase(), null, tag, root);\r\n\t\t} else if ((matches = /\\[((?:[\\w\\-]|\\\\.)+)\\s*=\\s*['\"]?((?:\\\\.|[^'\"]+)+)['\"]?\\]/.exec(expr))) {\r\n\t\t\tvar key = matches[1].toLowerCase(), val = matches[2];\r\n\t\t\tif (key === 'id') {\r\n\t\t\t\tarr = byId(val, tag, root);\r\n\t\t\t} else if (key === 'class') {\r\n\t\t\t\tarr = byClass(val, tag, root);\r\n\t\t\t} else if (key === 'name') {\r\n\t\t\t\tarr = byName(val, tag, root);\r\n\t\t\t} else {\r\n\t\t\t\tarr = byAttr(key, val, tag, root);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar els = root.getElementsByTagName(tag), el;\r\n\t\t\tfor (var i = 0, len = els.length; i < len; i++) {\r\n\t\t\t\tel = els[i];\r\n\t\t\t\tif (el.nodeType == 1) {\r\n\t\t\t\t\tarr.push(el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\tvar parts = [], arr, re = /((?:\\\\.|[^\\s>])+|[\\s>])/g;\r\n\twhile ((arr = re.exec(expr))) {\r\n\t\tif (arr[1] !== ' ') {\r\n\t\t\tparts.push(arr[1]);\r\n\t\t}\r\n\t}\r\n\tvar results = [];\r\n\tif (parts.length == 1) {\r\n\t\treturn select(parts[0], root);\r\n\t}\r\n\tvar isChild = false, part, els, subResults, val, v, i, j, k, length, len, l;\r\n\tfor (i = 0, lenth = parts.length; i < lenth; i++) {\r\n\t\tpart = parts[i];\r\n\t\tif (part === '>') {\r\n\t\t\tisChild = true;\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\tif (i > 0) {\r\n\t\t\tels = [];\r\n\t\t\tfor (j = 0, len = results.length; j < len; j++) {\r\n\t\t\t\tval = results[j];\r\n\t\t\t\tsubResults = select(part, val);\r\n\t\t\t\tfor (k = 0, l = subResults.length; k < l; k++) {\r\n\t\t\t\t\tv = subResults[k];\r\n\t\t\t\t\tif (isChild) {\r\n\t\t\t\t\t\tif (val === v.parentNode) {\r\n\t\t\t\t\t\t\tels.push(v);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tels.push(v);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tresults = els;\r\n\t\t} else {\r\n\t\t\tresults = select(part, root);\r\n\t\t}\r\n\t\tif (results.length === 0) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t}\r\n\treturn results;\r\n}\r\nfunction _query(expr, root) {\r\n\tvar arr = _queryAll(expr, root);\r\n\treturn arr.length > 0 ? arr[0] : null;\r\n}\r\nK.query = _query;\r\nK.queryAll = _queryAll;\r\n\n\r\nfunction _get(val) {\r\n\treturn K(val)[0];\r\n}\r\nfunction _getDoc(node) {\r\n\tif (!node) {\r\n\t\treturn document;\r\n\t}\r\n\treturn node.ownerDocument || node.document || node;\r\n}\r\nfunction _getWin(node) {\r\n\tif (!node) {\r\n\t\treturn window;\r\n\t}\r\n\tvar doc = _getDoc(node);\r\n\treturn doc.parentWindow || doc.defaultView;\r\n}\r\nfunction _setHtml(el, html) {\r\n\tif (el.nodeType != 1) {\r\n\t\treturn;\r\n\t}\r\n\tvar doc = _getDoc(el);\r\n\ttry {\r\n\t\tel.innerHTML = '<img id=\"__kindeditor_temp_tag__\" width=\"0\" height=\"0\" style=\"display:none;\" />' + html;\r\n\t\tvar temp = doc.getElementById('__kindeditor_temp_tag__');\r\n\t\ttemp.parentNode.removeChild(temp);\r\n\t} catch(e) {\r\n\t\tK(el).empty();\r\n\t\tK('@' + html, doc).each(function() {\r\n\t\t\tel.appendChild(this);\r\n\t\t});\r\n\t}\r\n}\r\nfunction _hasClass(el, cls) {\r\n\treturn _inString(cls, el.className, ' ');\r\n}\r\nfunction _setAttr(el, key, val) {\r\n\tif (_IE && _V < 8 && key.toLowerCase() == 'class') {\r\n\t\tkey = 'className';\r\n\t}\r\n\tel.setAttribute(key, '' + val);\r\n}\r\nfunction _removeAttr(el, key) {\r\n\tif (_IE && _V < 8 && key.toLowerCase() == 'class') {\r\n\t\tkey = 'className';\r\n\t}\r\n\t_setAttr(el, key, '');\r\n\tel.removeAttribute(key);\r\n}\r\nfunction _getNodeName(node) {\r\n\tif (!node || !node.nodeName) {\r\n\t\treturn '';\r\n\t}\r\n\treturn node.nodeName.toLowerCase();\r\n}\r\nfunction _computedCss(el, key) {\r\n\tvar self = this, win = _getWin(el), camelKey = _toCamel(key), val = '';\r\n\tif (win.getComputedStyle) {\r\n\t\tvar style = win.getComputedStyle(el, null);\r\n\t\tval = style[camelKey] || style.getPropertyValue(key) || el.style[camelKey];\r\n\t} else if (el.currentStyle) {\r\n\t\tval = el.currentStyle[camelKey] || el.style[camelKey];\r\n\t}\r\n\treturn val;\r\n}\r\nfunction _hasVal(node) {\r\n\treturn !!_VALUE_TAG_MAP[_getNodeName(node)];\r\n}\r\nfunction _docElement(doc) {\r\n\tdoc = doc || document;\r\n\treturn _QUIRKS ? doc.body : doc.documentElement;\r\n}\r\nfunction _docHeight(doc) {\r\n\tvar el = _docElement(doc);\r\n\treturn Math.max(el.scrollHeight, el.clientHeight);\r\n}\r\nfunction _docWidth(doc) {\r\n\tvar el = _docElement(doc);\r\n\treturn Math.max(el.scrollWidth, el.clientWidth);\r\n}\r\nfunction _getScrollPos(doc) {\r\n\tdoc = doc || document;\r\n\tvar x, y;\r\n\tif (_IE || _NEWIE || _OPERA) {\r\n\t\tx = _docElement(doc).scrollLeft;\r\n\t\ty = _docElement(doc).scrollTop;\r\n\t} else {\r\n\t\tx = _getWin(doc).scrollX;\r\n\t\ty = _getWin(doc).scrollY;\r\n\t}\r\n\treturn {x : x, y : y};\r\n}\r\n\r\r\nfunction KNode(node) {\r\n\tthis.init(node);\r\n}\r\n_extend(KNode, {\r\n\tinit : function(node) {\r\n\t\tvar self = this;\r\n\t\tnode = _isArray(node) ? node : [node];\r\n\t\tvar length = 0;\r\n\t\tfor (var i = 0, len = node.length; i < len; i++) {\r\n\t\t\tif (node[i]) {\r\n\t\t\t\tself[i] = node[i].constructor === KNode ? node[i][0] : node[i];\r\n\t\t\t\tlength++;\r\n\t\t\t}\r\n\t\t}\r\n\t\tself.length = length;\r\n\t\tself.doc = _getDoc(self[0]);\r\n\t\tself.name = _getNodeName(self[0]);\r\n\t\tself.type = self.length > 0 ? self[0].nodeType : null;\r\n\t\tself.win = _getWin(self[0]);\r\n\t},\r\n\teach : function(fn) {\r\n\t\tvar self = this;\r\n\t\tfor (var i = 0; i < self.length; i++) {\r\n\t\t\tif (fn.call(self[i], i, self[i]) === false) {\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tbind : function(type, fn) {\r\n\t\tthis.each(function() {\r\n\t\t\t_bind(this, type, fn);\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tunbind : function(type, fn) {\r\n\t\tthis.each(function() {\r\n\t\t\t_unbind(this, type, fn);\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tfire : function(type) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t_fire(this[0], type);\r\n\t\treturn this;\r\n\t},\r\n\thasAttr : function(key) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn !!_getAttr(this[0], key);\r\n\t},\r\n\tattr : function(key, val) {\r\n\t\tvar self = this;\r\n\t\tif (key === undefined) {\r\n\t\t\treturn _getAttrList(self.outer());\r\n\t\t}\r\n\t\tif (typeof key === 'object') {\r\n\t\t\t_each(key, function(k, v) {\r\n\t\t\t\tself.attr(k, v);\r\n\t\t\t});\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tif (val === undefined) {\r\n\t\t\tval = self.length < 1 ? null : _getAttr(self[0], key);\r\n\t\t\treturn val === null ? '' : val;\r\n\t\t}\r\n\t\tself.each(function() {\r\n\t\t\t_setAttr(this, key, val);\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\tremoveAttr : function(key) {\r\n\t\tthis.each(function() {\r\n\t\t\t_removeAttr(this, key);\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tget : function(i) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn this[i || 0];\r\n\t},\r\n\teq : function(i) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn this[i] ? new KNode(this[i]) : null;\r\n\t},\r\n\thasClass : function(cls) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn _hasClass(this[0], cls);\r\n\t},\r\n\taddClass : function(cls) {\r\n\t\tthis.each(function() {\r\n\t\t\tif (!_hasClass(this, cls)) {\r\n\t\t\t\tthis.className = _trim(this.className + ' ' + cls);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tremoveClass : function(cls) {\r\n\t\tthis.each(function() {\r\n\t\t\tif (_hasClass(this, cls)) {\r\n\t\t\t\tthis.className = _trim(this.className.replace(new RegExp('(^|\\\\s)' + cls + '(\\\\s|$)'), ' '));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\thtml : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\tif (self.length < 1 || self.type != 1) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\treturn _formatHtml(self[0].innerHTML);\r\n\t\t}\r\n\t\tself.each(function() {\r\n\t\t\t_setHtml(this, val);\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\ttext : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.length < 1) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\treturn _IE ? self[0].innerText : self[0].textContent;\r\n\t},\r\n\thasVal : function() {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn _hasVal(this[0]);\r\n\t},\r\n\tval : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\tif (self.length < 1) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\treturn self.hasVal() ? self[0].value : self.attr('value');\r\n\t\t} else {\r\n\t\t\tself.each(function() {\r\n\t\t\t\tif (_hasVal(this)) {\r\n\t\t\t\t\tthis.value = val;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_setAttr(this, 'value' , val);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn self;\r\n\t\t}\r\n\t},\r\n\tcss : function(key, val) {\r\n\t\tvar self = this;\r\n\t\tif (key === undefined) {\r\n\t\t\treturn _getCssList(self.attr('style'));\r\n\t\t}\r\n\t\tif (typeof key === 'object') {\r\n\t\t\t_each(key, function(k, v) {\r\n\t\t\t\tself.css(k, v);\r\n\t\t\t});\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tif (val === undefined) {\r\n\t\t\tif (self.length < 1) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\treturn self[0].style[_toCamel(key)] || _computedCss(self[0], key) || '';\r\n\t\t}\r\n\t\tself.each(function() {\r\n\t\t\tthis.style[_toCamel(key)] = val;\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\twidth : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\tif (self.length < 1) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t\treturn self[0].offsetWidth;\r\n\t\t}\r\n\t\treturn self.css('width', _addUnit(val));\r\n\t},\r\n\theight : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\tif (self.length < 1) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t\treturn self[0].offsetHeight;\r\n\t\t}\r\n\t\treturn self.css('height', _addUnit(val));\r\n\t},\r\n\topacity : function(val) {\r\n\t\tthis.each(function() {\r\n\t\t\tif (this.style.opacity === undefined) {\r\n\t\t\t\tthis.style.filter = val == 1 ? '' : 'alpha(opacity=' + (val * 100) + ')';\r\n\t\t\t} else {\r\n\t\t\t\tthis.style.opacity = val == 1 ? '' : val;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tdata : function(key, val) {\r\n\t\tvar self = this;\r\n\t\tkey = 'kindeditor_data_' + key;\r\n\t\tif (val === undefined) {\r\n\t\t\tif (self.length < 1) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn self[0][key];\r\n\t\t}\r\n\t\tthis.each(function() {\r\n\t\t\tthis[key] = val;\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\tpos : function() {\r\n\t\tvar self = this, node = self[0], x = 0, y = 0;\r\n\t\tif (node) {\r\n\t\t\tif (node.getBoundingClientRect) {\r\n\t\t\t\tvar box = node.getBoundingClientRect(),\r\n\t\t\t\t\tpos = _getScrollPos(self.doc);\r\n\t\t\t\tx = box.left + pos.x;\r\n\t\t\t\ty = box.top + pos.y;\r\n\t\t\t} else {\r\n\t\t\t\twhile (node) {\r\n\t\t\t\t\tx += node.offsetLeft;\r\n\t\t\t\t\ty += node.offsetTop;\r\n\t\t\t\t\tnode = node.offsetParent;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {x : _round(x), y : _round(y)};\r\n\t},\r\n\tclone : function(bool) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn new KNode([]);\r\n\t\t}\r\n\t\treturn new KNode(this[0].cloneNode(bool));\r\n\t},\r\n\tappend : function(expr) {\r\n\t\tthis.each(function() {\r\n\t\t\tif (this.appendChild) {\r\n\t\t\t\tthis.appendChild(_get(expr));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tappendTo : function(expr) {\r\n\t\tthis.each(function() {\r\n\t\t\t_get(expr).appendChild(this);\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tbefore : function(expr) {\r\n\t\tthis.each(function() {\r\n\t\t\tthis.parentNode.insertBefore(_get(expr), this);\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tafter : function(expr) {\r\n\t\tthis.each(function() {\r\n\t\t\tif (this.nextSibling) {\r\n\t\t\t\tthis.parentNode.insertBefore(_get(expr), this.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\tthis.parentNode.appendChild(_get(expr));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\treplaceWith : function(expr) {\r\n\t\tvar nodes = [];\r\n\t\tthis.each(function(i, node) {\r\n\t\t\t_unbind(node);\r\n\t\t\tvar newNode = _get(expr);\r\n\t\t\tnode.parentNode.replaceChild(newNode, node);\r\n\t\t\tnodes.push(newNode);\r\n\t\t});\r\n\t\treturn K(nodes);\r\n\t},\r\n\tempty : function() {\r\n\t\tvar self = this;\r\n\t\tself.each(function(i, node) {\r\n\t\t\tvar child = node.firstChild;\r\n\t\t\twhile (child) {\r\n\t\t\t\tif (!node.parentNode) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar next = child.nextSibling;\r\n\t\t\t\tchild.parentNode.removeChild(child);\r\n\t\t\t\tchild = next;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\tremove : function(keepChilds) {\r\n\t\tvar self = this;\r\n\t\tself.each(function(i, node) {\r\n\t\t\tif (!node.parentNode) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t_unbind(node);\r\n\t\t\tif (keepChilds) {\r\n\t\t\t\tvar child = node.firstChild;\r\n\t\t\t\twhile (child) {\r\n\t\t\t\t\tvar next = child.nextSibling;\r\n\t\t\t\t\tnode.parentNode.insertBefore(child, node);\r\n\t\t\t\t\tchild = next;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tnode.parentNode.removeChild(node);\r\n\t\t\tdelete self[i];\r\n\t\t});\r\n\t\tself.length = 0;\r\n\t\treturn self;\r\n\t},\r\n\tshow : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\tval = self._originDisplay || '';\r\n\t\t}\r\n\t\tif (self.css('display') != 'none') {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\treturn self.css('display', val);\r\n\t},\r\n\thide : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.length < 1) {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tself._originDisplay = self[0].style.display;\r\n\t\treturn self.css('display', 'none');\r\n\t},\r\n\touter : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.length < 1) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tvar div = self.doc.createElement('div'), html;\r\n\t\tdiv.appendChild(self[0].cloneNode(true));\r\n\t\thtml = _formatHtml(div.innerHTML);\r\n\t\tdiv = null;\r\n\t\treturn html;\r\n\t},\r\n\tisSingle : function() {\r\n\t\treturn !!_SINGLE_TAG_MAP[this.name];\r\n\t},\r\n\tisInline : function() {\r\n\t\treturn !!_INLINE_TAG_MAP[this.name];\r\n\t},\r\n\tisBlock : function() {\r\n\t\treturn !!_BLOCK_TAG_MAP[this.name];\r\n\t},\r\n\tisStyle : function() {\r\n\t\treturn !!_STYLE_TAG_MAP[this.name];\r\n\t},\r\n\tisControl : function() {\r\n\t\treturn !!_CONTROL_TAG_MAP[this.name];\r\n\t},\r\n\tcontains : function(otherNode) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn _contains(this[0], _get(otherNode));\r\n\t},\r\n\tparent : function() {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tvar node = this[0].parentNode;\r\n\t\treturn node ? new KNode(node) : null;\r\n\t},\r\n\tchildren : function() {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn new KNode([]);\r\n\t\t}\r\n\t\tvar list = [], child = this[0].firstChild;\r\n\t\twhile (child) {\r\n\t\t\tif (child.nodeType != 3 || _trim(child.nodeValue) !== '') {\r\n\t\t\t\tlist.push(child);\r\n\t\t\t}\r\n\t\t\tchild = child.nextSibling;\r\n\t\t}\r\n\t\treturn new KNode(list);\r\n\t},\r\n\tfirst : function() {\r\n\t\tvar list = this.children();\r\n\t\treturn list.length > 0 ? list.eq(0) : null;\r\n\t},\r\n\tlast : function() {\r\n\t\tvar list = this.children();\r\n\t\treturn list.length > 0 ? list.eq(list.length - 1) : null;\r\n\t},\r\n\tindex : function() {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\tvar i = -1, sibling = this[0];\r\n\t\twhile (sibling) {\r\n\t\t\ti++;\r\n\t\t\tsibling = sibling.previousSibling;\r\n\t\t}\r\n\t\treturn i;\r\n\t},\r\n\tprev : function() {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tvar node = this[0].previousSibling;\r\n\t\treturn node ? new KNode(node) : null;\r\n\t},\r\n\tnext : function() {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tvar node = this[0].nextSibling;\r\n\t\treturn node ? new KNode(node) : null;\r\n\t},\r\n\tscan : function(fn, order) {\r\n\t\tif (this.length < 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\torder = (order === undefined) ? true : order;\r\n\t\tfunction walk(node) {\r\n\t\t\tvar n = order ? node.firstChild : node.lastChild;\r\n\t\t\twhile (n) {\r\n\t\t\t\tvar next = order ? n.nextSibling : n.previousSibling;\r\n\t\t\t\tif (fn(n) === false) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (walk(n) === false) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tn = next;\r\n\t\t\t}\r\n\t\t}\r\n\t\twalk(this[0]);\r\n\t\treturn this;\r\n\t}\r\n});\r\n_each(('blur,focus,focusin,focusout,load,resize,scroll,unload,click,dblclick,' +\r\n\t'mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,' +\r\n\t'change,select,submit,keydown,keypress,keyup,error,contextmenu').split(','), function(i, type) {\r\n\tKNode.prototype[type] = function(fn) {\r\n\t\treturn fn ? this.bind(type, fn) : this.fire(type);\r\n\t};\r\n});\r\nvar _K = K;\r\nK = function(expr, root) {\r\n\tif (expr === undefined || expr === null) {\r\n\t\treturn;\r\n\t}\r\n\tfunction newNode(node) {\r\n\t\tif (!node[0]) {\r\n\t\t\tnode = [];\r\n\t\t}\r\n\t\treturn new KNode(node);\r\n\t}\r\n\tif (typeof expr === 'string') {\r\n\t\tif (root) {\r\n\t\t\troot = _get(root);\r\n\t\t}\r\n\t\tvar length = expr.length;\r\n\t\tif (expr.charAt(0) === '@') {\r\n\t\t\texpr = expr.substr(1);\r\n\t\t}\r\n\t\tif (expr.length !== length || /<.+>/.test(expr)) {\r\n\t\t\tvar doc = root ? root.ownerDocument || root : document,\r\n\t\t\t\tdiv = doc.createElement('div'), list = [];\r\n\t\t\tdiv.innerHTML = '<img id=\"__kindeditor_temp_tag__\" width=\"0\" height=\"0\" style=\"display:none;\" />' + expr;\r\n\t\t\tfor (var i = 0, len = div.childNodes.length; i < len; i++) {\r\n\t\t\t\tvar child = div.childNodes[i];\r\n\t\t\t\tif (child.id == '__kindeditor_temp_tag__') {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(child);\r\n\t\t\t}\r\n\t\t\treturn newNode(list);\r\n\t\t}\r\n\t\treturn newNode(_queryAll(expr, root));\r\n\t}\r\n\tif (expr && expr.constructor === KNode) {\r\n\t\treturn expr;\r\n\t}\r\n\tif (expr.toArray) {\r\n\t\texpr = expr.toArray();\r\n\t}\r\n\tif (_isArray(expr)) {\r\n\t\treturn newNode(expr);\r\n\t}\r\n\treturn newNode(_toArray(arguments));\r\n};\r\n_each(_K, function(key, val) {\r\n\tK[key] = val;\r\n});\r\nK.NodeClass = KNode;\r\nwindow.KindEditor = K;\r\n\r\nvar _START_TO_START = 0,\r\n\t_START_TO_END = 1,\r\n\t_END_TO_END = 2,\r\n\t_END_TO_START = 3,\r\n\t_BOOKMARK_ID = 0;\r\nfunction _updateCollapsed(range) {\r\n\trange.collapsed = (range.startContainer === range.endContainer && range.startOffset === range.endOffset);\r\n\treturn range;\r\n}\r\nfunction _copyAndDelete(range, isCopy, isDelete) {\r\n\tvar doc = range.doc, nodeList = [];\r\n\tfunction splitTextNode(node, startOffset, endOffset) {\r\n\t\tvar length = node.nodeValue.length, centerNode;\r\n\t\tif (isCopy) {\r\n\t\t\tvar cloneNode = node.cloneNode(true);\r\n\t\t\tif (startOffset > 0) {\r\n\t\t\t\tcenterNode = cloneNode.splitText(startOffset);\r\n\t\t\t} else {\r\n\t\t\t\tcenterNode = cloneNode;\r\n\t\t\t}\r\n\t\t\tif (endOffset < length) {\r\n\t\t\t\tcenterNode.splitText(endOffset - startOffset);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isDelete) {\r\n\t\t\tvar center = node;\r\n\t\t\tif (startOffset > 0) {\r\n\t\t\t\tcenter = node.splitText(startOffset);\r\n\t\t\t\trange.setStart(node, startOffset);\r\n\t\t\t}\r\n\t\t\tif (endOffset < length) {\r\n\t\t\t\tvar right = center.splitText(endOffset - startOffset);\r\n\t\t\t\trange.setEnd(right, 0);\r\n\t\t\t}\r\n\t\t\tnodeList.push(center);\r\n\t\t}\r\n\t\treturn centerNode;\r\n\t}\r\n\tfunction removeNodes() {\r\n\t\tif (isDelete) {\r\n\t\t\trange.up().collapse(true);\r\n\t\t}\r\n\t\tfor (var i = 0, len = nodeList.length; i < len; i++) {\r\n\t\t\tvar node = nodeList[i];\r\n\t\t\tif (node.parentNode) {\r\n\t\t\t\tnode.parentNode.removeChild(node);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvar copyRange = range.cloneRange().down();\r\n\tvar start = -1, incStart = -1, incEnd = -1, end = -1,\r\n\t\tancestor = range.commonAncestor(), frag = doc.createDocumentFragment();\r\n\tif (ancestor.nodeType == 3) {\r\n\t\tvar textNode = splitTextNode(ancestor, range.startOffset, range.endOffset);\r\n\t\tif (isCopy) {\r\n\t\t\tfrag.appendChild(textNode);\r\n\t\t}\r\n\t\tremoveNodes();\r\n\t\treturn isCopy ? frag : range;\r\n\t}\r\n\tfunction extractNodes(parent, frag) {\r\n\t\tvar node = parent.firstChild, nextNode;\r\n\t\twhile (node) {\r\n\t\t\tvar testRange = new KRange(doc).selectNode(node);\r\n\t\t\tstart = testRange.compareBoundaryPoints(_START_TO_END, range);\r\n\t\t\tif (start >= 0 && incStart <= 0) {\r\n\t\t\t\tincStart = testRange.compareBoundaryPoints(_START_TO_START, range);\r\n\t\t\t}\r\n\t\t\tif (incStart >= 0 && incEnd <= 0) {\r\n\t\t\t\tincEnd = testRange.compareBoundaryPoints(_END_TO_END, range);\r\n\t\t\t}\r\n\t\t\tif (incEnd >= 0 && end <= 0) {\r\n\t\t\t\tend = testRange.compareBoundaryPoints(_END_TO_START, range);\r\n\t\t\t}\r\n\t\t\tif (end >= 0) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tnextNode = node.nextSibling;\r\n\t\t\tif (start > 0) {\r\n\t\t\t\tif (node.nodeType == 1) {\r\n\t\t\t\t\tif (incStart >= 0 && incEnd <= 0) {\r\n\t\t\t\t\t\tif (isCopy) {\r\n\t\t\t\t\t\t\tfrag.appendChild(node.cloneNode(true));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (isDelete) {\r\n\t\t\t\t\t\t\tnodeList.push(node);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar childFlag;\r\n\t\t\t\t\t\tif (isCopy) {\r\n\t\t\t\t\t\t\tchildFlag = node.cloneNode(false);\r\n\t\t\t\t\t\t\tfrag.appendChild(childFlag);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (extractNodes(node, childFlag) === false) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (node.nodeType == 3) {\r\n\t\t\t\t\tvar textNode;\r\n\t\t\t\t\tif (node == copyRange.startContainer) {\r\n\t\t\t\t\t\ttextNode = splitTextNode(node, copyRange.startOffset, node.nodeValue.length);\r\n\t\t\t\t\t} else if (node == copyRange.endContainer) {\r\n\t\t\t\t\t\ttextNode = splitTextNode(node, 0, copyRange.endOffset);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttextNode = splitTextNode(node, 0, node.nodeValue.length);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isCopy) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tfrag.appendChild(textNode);\r\n\t\t\t\t\t\t} catch(e) {}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tnode = nextNode;\r\n\t\t}\r\n\t}\r\n\textractNodes(ancestor, frag);\r\n\tif (isDelete) {\r\n\t\trange.up().collapse(true);\r\n\t}\r\n\tfor (var i = 0, len = nodeList.length; i < len; i++) {\r\n\t\tvar node = nodeList[i];\r\n\t\tif (node.parentNode) {\r\n\t\t\tnode.parentNode.removeChild(node);\r\n\t\t}\r\n\t}\r\n\treturn isCopy ? frag : range;\r\n}\r\r\nfunction _moveToElementText(range, el) {\r\n\tvar node = el;\r\n\twhile (node) {\r\n\t\tvar knode = K(node);\r\n\t\tif (knode.name == 'marquee' || knode.name == 'select') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tnode = node.parentNode;\r\n\t}\r\n\ttry {\r\n\t\trange.moveToElementText(el);\r\n\t} catch(e) {}\r\n}\r\r\nfunction _getStartEnd(rng, isStart) {\r\n\tvar doc = rng.parentElement().ownerDocument,\r\n\t\tpointRange = rng.duplicate();\r\n\tpointRange.collapse(isStart);\r\n\tvar parent = pointRange.parentElement(),\r\n\t\tnodes = parent.childNodes;\r\n\tif (nodes.length === 0) {\r\n\t\treturn {node: parent.parentNode, offset: K(parent).index()};\r\n\t}\r\n\tvar startNode = doc, startPos = 0, cmp = -1;\r\n\tvar testRange = rng.duplicate();\r\n\t_moveToElementText(testRange, parent);\r\n\tfor (var i = 0, len = nodes.length; i < len; i++) {\r\n\t\tvar node = nodes[i];\r\n\t\tcmp = testRange.compareEndPoints('StartToStart', pointRange);\r\n\t\tif (cmp === 0) {\r\n\t\t\treturn {node: node.parentNode, offset: i};\r\n\t\t}\r\n\t\tif (node.nodeType == 1) {\r\n\t\t\tvar nodeRange = rng.duplicate(), dummy, knode = K(node), newNode = node;\r\n\t\t\tif (knode.isControl()) {\r\n\t\t\t\tdummy = doc.createElement('span');\r\n\t\t\t\tknode.after(dummy);\r\n\t\t\t\tnewNode = dummy;\r\n\t\t\t\tstartPos += knode.text().replace(/\\r\\n|\\n|\\r/g, '').length;\r\n\t\t\t}\r\n\t\t\t_moveToElementText(nodeRange, newNode);\r\n\t\t\ttestRange.setEndPoint('StartToEnd', nodeRange);\r\n\t\t\tif (cmp > 0) {\r\n\t\t\t\tstartPos += nodeRange.text.replace(/\\r\\n|\\n|\\r/g, '').length;\r\n\t\t\t} else {\r\n\t\t\t\tstartPos = 0;\r\n\t\t\t}\r\n\t\t\tif (dummy) {\r\n\t\t\t\tK(dummy).remove();\r\n\t\t\t}\r\n\t\t} else if (node.nodeType == 3) {\r\n\t\t\ttestRange.moveStart('character', node.nodeValue.length);\r\n\t\t\tstartPos += node.nodeValue.length;\r\n\t\t}\r\n\t\tif (cmp < 0) {\r\n\t\t\tstartNode = node;\r\n\t\t}\r\n\t}\r\n\tif (cmp < 0 && startNode.nodeType == 1) {\r\n\t\treturn {node: parent, offset: K(parent.lastChild).index() + 1};\r\n\t}\r\n\tif (cmp > 0) {\r\n\t\twhile (startNode.nextSibling && startNode.nodeType == 1) {\r\n\t\t\tstartNode = startNode.nextSibling;\r\n\t\t}\r\n\t}\r\n\ttestRange = rng.duplicate();\r\n\t_moveToElementText(testRange, parent);\r\n\ttestRange.setEndPoint('StartToEnd', pointRange);\r\n\tstartPos -= testRange.text.replace(/\\r\\n|\\n|\\r/g, '').length;\r\n\tif (cmp > 0 && startNode.nodeType == 3) {\r\n\t\tvar prevNode = startNode.previousSibling;\r\n\t\twhile (prevNode && prevNode.nodeType == 3) {\r\n\t\t\tstartPos -= prevNode.nodeValue.length;\r\n\t\t\tprevNode = prevNode.previousSibling;\r\n\t\t}\r\n\t}\r\n\treturn {node: startNode, offset: startPos};\r\n}\r\r\nfunction _getEndRange(node, offset) {\r\n\tvar doc = node.ownerDocument || node,\r\n\t\trange = doc.body.createTextRange();\r\n\tif (doc == node) {\r\n\t\trange.collapse(true);\r\n\t\treturn range;\r\n\t}\r\n\tif (node.nodeType == 1 && node.childNodes.length > 0) {\r\n\t\tvar children = node.childNodes, isStart, child;\r\n\t\tif (offset === 0) {\r\n\t\t\tchild = children[0];\r\n\t\t\tisStart = true;\r\n\t\t} else {\r\n\t\t\tchild = children[offset - 1];\r\n\t\t\tisStart = false;\r\n\t\t}\r\n\t\tif (!child) {\r\n\t\t\treturn range;\r\n\t\t}\r\n\t\tif (K(child).name === 'head') {\r\n\t\t\tif (offset === 1) {\r\n\t\t\t\tisStart = true;\r\n\t\t\t}\r\n\t\t\tif (offset === 2) {\r\n\t\t\t\tisStart = false;\r\n\t\t\t}\r\n\t\t\trange.collapse(isStart);\r\n\t\t\treturn range;\r\n\t\t}\r\n\t\tif (child.nodeType == 1) {\r\n\t\t\tvar kchild = K(child), span;\r\n\t\t\tif (kchild.isControl()) {\r\n\t\t\t\tspan = doc.createElement('span');\r\n\t\t\t\tif (isStart) {\r\n\t\t\t\t\tkchild.before(span);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tkchild.after(span);\r\n\t\t\t\t}\r\n\t\t\t\tchild = span;\r\n\t\t\t}\r\n\t\t\t_moveToElementText(range, child);\r\n\t\t\trange.collapse(isStart);\r\n\t\t\tif (span) {\r\n\t\t\t\tK(span).remove();\r\n\t\t\t}\r\n\t\t\treturn range;\r\n\t\t}\r\n\t\tnode = child;\r\n\t\toffset = isStart ? 0 : child.nodeValue.length;\r\n\t}\r\n\tvar dummy = doc.createElement('span');\r\n\tK(node).before(dummy);\r\n\t_moveToElementText(range, dummy);\r\n\trange.moveStart('character', offset);\r\n\tK(dummy).remove();\r\n\treturn range;\r\n}\r\r\nfunction _toRange(rng) {\r\n\tvar doc, range;\r\n\tfunction tr2td(start) {\r\n\t\tif (K(start.node).name == 'tr') {\r\n\t\t\tstart.node = start.node.cells[start.offset];\r\n\t\t\tstart.offset = 0;\r\n\t\t}\r\n\t}\r\n\tif (_IERANGE) {\r\n\t\tif (rng.item) {\r\n\t\t\tdoc = _getDoc(rng.item(0));\r\n\t\t\trange = new KRange(doc);\r\n\t\t\trange.selectNode(rng.item(0));\r\n\t\t\treturn range;\r\n\t\t}\r\n\t\tdoc = rng.parentElement().ownerDocument;\r\n\t\tvar start = _getStartEnd(rng, true),\r\n\t\t\tend = _getStartEnd(rng, false);\r\n\t\ttr2td(start);\r\n\t\ttr2td(end);\r\n\t\trange = new KRange(doc);\r\n\t\trange.setStart(start.node, start.offset);\r\n\t\trange.setEnd(end.node, end.offset);\r\n\t\treturn range;\r\n\t}\r\n\tvar startContainer = rng.startContainer;\r\n\tdoc = startContainer.ownerDocument || startContainer;\r\n\trange = new KRange(doc);\r\n\trange.setStart(startContainer, rng.startOffset);\r\n\trange.setEnd(rng.endContainer, rng.endOffset);\r\n\treturn range;\r\n}\r\n\r\r\nfunction KRange(doc) {\r\n\tthis.init(doc);\r\n}\r\n_extend(KRange, {\r\n\tinit : function(doc) {\r\n\t\tvar self = this;\r\n\t\tself.startContainer = doc;\r\n\t\tself.startOffset = 0;\r\n\t\tself.endContainer = doc;\r\n\t\tself.endOffset = 0;\r\n\t\tself.collapsed = true;\r\n\t\tself.doc = doc;\r\n\t},\r\n\tcommonAncestor : function() {\r\n\t\tfunction getParents(node) {\r\n\t\t\tvar parents = [];\r\n\t\t\twhile (node) {\r\n\t\t\t\tparents.push(node);\r\n\t\t\t\tnode = node.parentNode;\r\n\t\t\t}\r\n\t\t\treturn parents;\r\n\t\t}\r\n\t\tvar parentsA = getParents(this.startContainer),\r\n\t\t\tparentsB = getParents(this.endContainer),\r\n\t\t\ti = 0, lenA = parentsA.length, lenB = parentsB.length, parentA, parentB;\r\n\t\twhile (++i) {\r\n\t\t\tparentA = parentsA[lenA - i];\r\n\t\t\tparentB = parentsB[lenB - i];\r\n\t\t\tif (!parentA || !parentB || parentA !== parentB) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn parentsA[lenA - i + 1];\r\n\t},\r\n\tsetStart : function(node, offset) {\r\n\t\tvar self = this, doc = self.doc;\r\n\t\tself.startContainer = node;\r\n\t\tself.startOffset = offset;\r\n\t\tif (self.endContainer === doc) {\r\n\t\t\tself.endContainer = node;\r\n\t\t\tself.endOffset = offset;\r\n\t\t}\r\n\t\treturn _updateCollapsed(this);\r\n\t},\r\n\tsetEnd : function(node, offset) {\r\n\t\tvar self = this, doc = self.doc;\r\n\t\tself.endContainer = node;\r\n\t\tself.endOffset = offset;\r\n\t\tif (self.startContainer === doc) {\r\n\t\t\tself.startContainer = node;\r\n\t\t\tself.startOffset = offset;\r\n\t\t}\r\n\t\treturn _updateCollapsed(this);\r\n\t},\r\n\tsetStartBefore : function(node) {\r\n\t\treturn this.setStart(node.parentNode || this.doc, K(node).index());\r\n\t},\r\n\tsetStartAfter : function(node) {\r\n\t\treturn this.setStart(node.parentNode || this.doc, K(node).index() + 1);\r\n\t},\r\n\tsetEndBefore : function(node) {\r\n\t\treturn this.setEnd(node.parentNode || this.doc, K(node).index());\r\n\t},\r\n\tsetEndAfter : function(node) {\r\n\t\treturn this.setEnd(node.parentNode || this.doc, K(node).index() + 1);\r\n\t},\r\n\tselectNode : function(node) {\r\n\t\treturn this.setStartBefore(node).setEndAfter(node);\r\n\t},\r\n\tselectNodeContents : function(node) {\r\n\t\tvar knode = K(node);\r\n\t\tif (knode.type == 3 || knode.isSingle()) {\r\n\t\t\treturn this.selectNode(node);\r\n\t\t}\r\n\t\tvar children = knode.children();\r\n\t\tif (children.length > 0) {\r\n\t\t\treturn this.setStartBefore(children[0]).setEndAfter(children[children.length - 1]);\r\n\t\t}\r\n\t\treturn this.setStart(node, 0).setEnd(node, 0);\r\n\t},\r\n\tcollapse : function(toStart) {\r\n\t\tif (toStart) {\r\n\t\t\treturn this.setEnd(this.startContainer, this.startOffset);\r\n\t\t}\r\n\t\treturn this.setStart(this.endContainer, this.endOffset);\r\n\t},\r\n\tcompareBoundaryPoints : function(how, range) {\r\n\t\tvar rangeA = this.get(), rangeB = range.get();\r\n\t\tif (_IERANGE) {\r\n\t\t\tvar arr = {};\r\n\t\t\tarr[_START_TO_START] = 'StartToStart';\r\n\t\t\tarr[_START_TO_END] = 'EndToStart';\r\n\t\t\tarr[_END_TO_END] = 'EndToEnd';\r\n\t\t\tarr[_END_TO_START] = 'StartToEnd';\r\n\t\t\tvar cmp = rangeA.compareEndPoints(arr[how], rangeB);\r\n\t\t\tif (cmp !== 0) {\r\n\t\t\t\treturn cmp;\r\n\t\t\t}\r\n\t\t\tvar nodeA, nodeB, nodeC, posA, posB;\r\n\t\t\tif (how === _START_TO_START || how === _END_TO_START) {\r\n\t\t\t\tnodeA = this.startContainer;\r\n\t\t\t\tposA = this.startOffset;\r\n\t\t\t}\r\n\t\t\tif (how === _START_TO_END || how === _END_TO_END) {\r\n\t\t\t\tnodeA = this.endContainer;\r\n\t\t\t\tposA = this.endOffset;\r\n\t\t\t}\r\n\t\t\tif (how === _START_TO_START || how === _START_TO_END) {\r\n\t\t\t\tnodeB = range.startContainer;\r\n\t\t\t\tposB = range.startOffset;\r\n\t\t\t}\r\n\t\t\tif (how === _END_TO_END || how === _END_TO_START) {\r\n\t\t\t\tnodeB = range.endContainer;\r\n\t\t\t\tposB = range.endOffset;\r\n\t\t\t}\r\n\t\t\tif (nodeA === nodeB) {\r\n\t\t\t\tvar diff = posA - posB;\r\n\t\t\t\treturn diff > 0 ? 1 : (diff < 0 ? -1 : 0);\r\n\t\t\t}\r\n\t\t\tnodeC = nodeB;\r\n\t\t\twhile (nodeC && nodeC.parentNode !== nodeA) {\r\n\t\t\t\tnodeC = nodeC.parentNode;\r\n\t\t\t}\r\n\t\t\tif (nodeC) {\r\n\t\t\t\treturn K(nodeC).index() >= posA ? -1 : 1;\r\n\t\t\t}\r\n\t\t\tnodeC = nodeA;\r\n\t\t\twhile (nodeC && nodeC.parentNode !== nodeB) {\r\n\t\t\t\tnodeC = nodeC.parentNode;\r\n\t\t\t}\r\n\t\t\tif (nodeC) {\r\n\t\t\t\treturn K(nodeC).index() >= posB ? 1 : -1;\r\n\t\t\t}\r\n\t\t\tnodeC = K(nodeB).next();\r\n\t\t\tif (nodeC && nodeC.contains(nodeA)) {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t\tnodeC = K(nodeA).next();\r\n\t\t\tif (nodeC && nodeC.contains(nodeB)) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn rangeA.compareBoundaryPoints(how, rangeB);\r\n\t\t}\r\n\t},\r\n\tcloneRange : function() {\r\n\t\treturn new KRange(this.doc).setStart(this.startContainer, this.startOffset).setEnd(this.endContainer, this.endOffset);\r\n\t},\r\n\ttoString : function() {\r\n\t\tvar rng = this.get(), str = _IERANGE ? rng.text : rng.toString();\r\n\t\treturn str.replace(/\\r\\n|\\n|\\r/g, '');\r\n\t},\r\n\tcloneContents : function() {\r\n\t\treturn _copyAndDelete(this, true, false);\r\n\t},\r\n\tdeleteContents : function() {\r\n\t\treturn _copyAndDelete(this, false, true);\r\n\t},\r\n\textractContents : function() {\r\n\t\treturn _copyAndDelete(this, true, true);\r\n\t},\r\n\tinsertNode : function(node) {\r\n\t\tvar self = this,\r\n\t\t\tsc = self.startContainer, so = self.startOffset,\r\n\t\t\tec = self.endContainer, eo = self.endOffset,\r\n\t\t\tfirstChild, lastChild, c, nodeCount = 1;\r\n\t\tif (node.nodeName.toLowerCase() === '#document-fragment') {\r\n\t\t\tfirstChild = node.firstChild;\r\n\t\t\tlastChild = node.lastChild;\r\n\t\t\tnodeCount = node.childNodes.length;\r\n\t\t}\r\n\t\tif (sc.nodeType == 1) {\r\n\t\t\tc = sc.childNodes[so];\r\n\t\t\tif (c) {\r\n\t\t\t\tsc.insertBefore(node, c);\r\n\t\t\t\tif (sc === ec) {\r\n\t\t\t\t\teo += nodeCount;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tsc.appendChild(node);\r\n\t\t\t}\r\n\t\t} else if (sc.nodeType == 3) {\r\n\t\t\tif (so === 0) {\r\n\t\t\t\tsc.parentNode.insertBefore(node, sc);\r\n\t\t\t\tif (sc.parentNode === ec) {\r\n\t\t\t\t\teo += nodeCount;\r\n\t\t\t\t}\r\n\t\t\t} else if (so >= sc.nodeValue.length) {\r\n\t\t\t\tif (sc.nextSibling) {\r\n\t\t\t\t\tsc.parentNode.insertBefore(node, sc.nextSibling);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsc.parentNode.appendChild(node);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (so > 0) {\r\n\t\t\t\t\tc = sc.splitText(so);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tc = sc;\r\n\t\t\t\t}\r\n\t\t\t\tsc.parentNode.insertBefore(node, c);\r\n\t\t\t\tif (sc === ec) {\r\n\t\t\t\t\tec = c;\r\n\t\t\t\t\teo -= so;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (firstChild) {\r\n\t\t\tself.setStartBefore(firstChild).setEndAfter(lastChild);\r\n\t\t} else {\r\n\t\t\tself.selectNode(node);\r\n\t\t}\r\n\t\tif (self.compareBoundaryPoints(_END_TO_END, self.cloneRange().setEnd(ec, eo)) >= 1) {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\treturn self.setEnd(ec, eo);\r\n\t},\r\n\tsurroundContents : function(node) {\r\n\t\tnode.appendChild(this.extractContents());\r\n\t\treturn this.insertNode(node).selectNode(node);\r\n\t},\r\n\tisControl : function() {\r\n\t\tvar self = this,\r\n\t\t\tsc = self.startContainer, so = self.startOffset,\r\n\t\t\tec = self.endContainer, eo = self.endOffset, rng;\r\n\t\treturn sc.nodeType == 1 && sc === ec && so + 1 === eo && K(sc.childNodes[so]).isControl();\r\n\t},\r\n\tget : function(hasControlRange) {\r\n\t\tvar self = this, doc = self.doc, node, rng;\r\n\t\tif (!_IERANGE) {\r\n\t\t\trng = doc.createRange();\r\n\t\t\ttry {\r\n\t\t\t\trng.setStart(self.startContainer, self.startOffset);\r\n\t\t\t\trng.setEnd(self.endContainer, self.endOffset);\r\n\t\t\t} catch (e) {}\r\n\t\t\treturn rng;\r\n\t\t}\r\n\t\tif (hasControlRange && self.isControl()) {\r\n\t\t\trng = doc.body.createControlRange();\r\n\t\t\trng.addElement(self.startContainer.childNodes[self.startOffset]);\r\n\t\t\treturn rng;\r\n\t\t}\r\n\t\tvar range = self.cloneRange().down();\r\n\t\trng = doc.body.createTextRange();\r\n\t\trng.setEndPoint('StartToStart', _getEndRange(range.startContainer, range.startOffset));\r\n\t\trng.setEndPoint('EndToStart', _getEndRange(range.endContainer, range.endOffset));\r\n\t\treturn rng;\r\n\t},\r\n\thtml : function() {\r\n\t\treturn K(this.cloneContents()).outer();\r\n\t},\r\n\tdown : function() {\r\n\t\tvar self = this;\r\n\t\tfunction downPos(node, pos, isStart) {\r\n\t\t\tif (node.nodeType != 1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar children = K(node).children();\r\n\t\t\tif (children.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar left, right, child, offset;\r\n\t\t\tif (pos > 0) {\r\n\t\t\t\tleft = children.eq(pos - 1);\r\n\t\t\t}\r\n\t\t\tif (pos < children.length) {\r\n\t\t\t\tright = children.eq(pos);\r\n\t\t\t}\r\n\t\t\tif (left && left.type == 3) {\r\n\t\t\t\tchild = left[0];\r\n\t\t\t\toffset = child.nodeValue.length;\r\n\t\t\t}\r\n\t\t\tif (right && right.type == 3) {\r\n\t\t\t\tchild = right[0];\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\t\t\tif (!child) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (isStart) {\r\n\t\t\t\tself.setStart(child, offset);\r\n\t\t\t} else {\r\n\t\t\t\tself.setEnd(child, offset);\r\n\t\t\t}\r\n\t\t}\r\n\t\tdownPos(self.startContainer, self.startOffset, true);\r\n\t\tdownPos(self.endContainer, self.endOffset, false);\r\n\t\treturn self;\r\n\t},\r\n\tup : function() {\r\n\t\tvar self = this;\r\n\t\tfunction upPos(node, pos, isStart) {\r\n\t\t\tif (node.nodeType != 3) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (pos === 0) {\r\n\t\t\t\tif (isStart) {\r\n\t\t\t\t\tself.setStartBefore(node);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.setEndBefore(node);\r\n\t\t\t\t}\r\n\t\t\t} else if (pos == node.nodeValue.length) {\r\n\t\t\t\tif (isStart) {\r\n\t\t\t\t\tself.setStartAfter(node);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.setEndAfter(node);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tupPos(self.startContainer, self.startOffset, true);\r\n\t\tupPos(self.endContainer, self.endOffset, false);\r\n\t\treturn self;\r\n\t},\r\n\tenlarge : function(toBlock) {\r\n\t\tvar self = this;\r\n\t\tself.up();\r\n\t\tfunction enlargePos(node, pos, isStart) {\r\n\t\t\tvar knode = K(node), parent;\r\n\t\t\tif (knode.type == 3 || _NOSPLIT_TAG_MAP[knode.name] || !toBlock && knode.isBlock()) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (pos === 0) {\r\n\t\t\t\twhile (!knode.prev()) {\r\n\t\t\t\t\tparent = knode.parent();\r\n\t\t\t\t\tif (!parent || _NOSPLIT_TAG_MAP[parent.name] || !toBlock && parent.isBlock()) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tknode = parent;\r\n\t\t\t\t}\r\n\t\t\t\tif (isStart) {\r\n\t\t\t\t\tself.setStartBefore(knode[0]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.setEndBefore(knode[0]);\r\n\t\t\t\t}\r\n\t\t\t} else if (pos == knode.children().length) {\r\n\t\t\t\twhile (!knode.next()) {\r\n\t\t\t\t\tparent = knode.parent();\r\n\t\t\t\t\tif (!parent || _NOSPLIT_TAG_MAP[parent.name] || !toBlock && parent.isBlock()) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tknode = parent;\r\n\t\t\t\t}\r\n\t\t\t\tif (isStart) {\r\n\t\t\t\t\tself.setStartAfter(knode[0]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.setEndAfter(knode[0]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tenlargePos(self.startContainer, self.startOffset, true);\r\n\t\tenlargePos(self.endContainer, self.endOffset, false);\r\n\t\treturn self;\r\n\t},\r\n\tshrink : function() {\r\n\t\tvar self = this, child, collapsed = self.collapsed;\r\n\t\twhile (self.startContainer.nodeType == 1 && (child = self.startContainer.childNodes[self.startOffset]) && child.nodeType == 1 && !K(child).isSingle()) {\r\n\t\t\tself.setStart(child, 0);\r\n\t\t}\r\n\t\tif (collapsed) {\r\n\t\t\treturn self.collapse(collapsed);\r\n\t\t}\r\n\t\twhile (self.endContainer.nodeType == 1 && self.endOffset > 0 && (child = self.endContainer.childNodes[self.endOffset - 1]) && child.nodeType == 1 && !K(child).isSingle()) {\r\n\t\t\tself.setEnd(child, child.childNodes.length);\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tcreateBookmark : function(serialize) {\r\n\t\tvar self = this, doc = self.doc, endNode,\r\n\t\t\tstartNode = K('<span style=\"display:none;\"></span>', doc)[0];\r\n\t\tstartNode.id = '__kindeditor_bookmark_start_' + (_BOOKMARK_ID++) + '__';\r\n\t\tif (!self.collapsed) {\r\n\t\t\tendNode = startNode.cloneNode(true);\r\n\t\t\tendNode.id = '__kindeditor_bookmark_end_' + (_BOOKMARK_ID++) + '__';\r\n\t\t}\r\n\t\tif (endNode) {\r\n\t\t\tself.cloneRange().collapse(false).insertNode(endNode).setEndBefore(endNode);\r\n\t\t}\r\n\t\tself.insertNode(startNode).setStartAfter(startNode);\r\n\t\treturn {\r\n\t\t\tstart : serialize ? '#' + startNode.id : startNode,\r\n\t\t\tend : endNode ? (serialize ? '#' + endNode.id : endNode) : null\r\n\t\t};\r\n\t},\r\n\tmoveToBookmark : function(bookmark) {\r\n\t\tvar self = this, doc = self.doc,\r\n\t\t\tstart = K(bookmark.start, doc), end = bookmark.end ? K(bookmark.end, doc) : null;\r\n\t\tif (!start || start.length < 1) {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tself.setStartBefore(start[0]);\r\n\t\tstart.remove();\r\n\t\tif (end && end.length > 0) {\r\n\t\t\tself.setEndBefore(end[0]);\r\n\t\t\tend.remove();\r\n\t\t} else {\r\n\t\t\tself.collapse(true);\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tdump : function() {\r\n\t\tconsole.log('--------------------');\r\n\t\tconsole.log(this.startContainer.nodeType == 3 ? this.startContainer.nodeValue : this.startContainer, this.startOffset);\r\n\t\tconsole.log(this.endContainer.nodeType == 3 ? this.endContainer.nodeValue : this.endContainer, this.endOffset);\r\n\t}\r\n});\r\nfunction _range(mixed) {\r\n\tif (!mixed.nodeName) {\r\n\t\treturn mixed.constructor === KRange ? mixed : _toRange(mixed);\r\n\t}\r\n\treturn new KRange(mixed);\r\n}\r\nK.RangeClass = KRange;\r\nK.range = _range;\r\nK.START_TO_START = _START_TO_START;\r\nK.START_TO_END = _START_TO_END;\r\nK.END_TO_END = _END_TO_END;\r\nK.END_TO_START = _END_TO_START;\r\n\n\r\r\nfunction _nativeCommand(doc, key, val) {\r\n\ttry {\r\n\t\tdoc.execCommand(key, false, val);\r\n\t} catch(e) {}\r\n}\r\r\nfunction _nativeCommandValue(doc, key) {\r\n\tvar val = '';\r\n\ttry {\r\n\t\tval = doc.queryCommandValue(key);\r\n\t} catch (e) {}\r\n\tif (typeof val !== 'string') {\r\n\t\tval = '';\r\n\t}\r\n\treturn val;\r\n}\r\r\nfunction _getSel(doc) {\r\n\tvar win = _getWin(doc);\r\n\treturn _IERANGE ? doc.selection : win.getSelection();\r\n}\r\r\nfunction _getRng(doc) {\r\n\tvar sel = _getSel(doc), rng;\r\n\ttry {\r\n\t\tif (sel.rangeCount > 0) {\r\n\t\t\trng = sel.getRangeAt(0);\r\n\t\t} else {\r\n\t\t\trng = sel.createRange();\r\n\t\t}\r\n\t} catch(e) {}\r\n\tif (_IERANGE && (!rng || (!rng.item && rng.parentElement().ownerDocument !== doc))) {\r\n\t\treturn null;\r\n\t}\r\n\treturn rng;\r\n}\r\r\nfunction _singleKeyMap(map) {\r\n\tvar newMap = {}, arr, v;\r\n\t_each(map, function(key, val) {\r\n\t\tarr = key.split(',');\r\n\t\tfor (var i = 0, len = arr.length; i < len; i++) {\r\n\t\t\tv = arr[i];\r\n\t\t\tnewMap[v] = val;\r\n\t\t}\r\n\t});\r\n\treturn newMap;\r\n}\r\r\nfunction _hasAttrOrCss(knode, map) {\r\n\treturn _hasAttrOrCssByKey(knode, map, '*') || _hasAttrOrCssByKey(knode, map);\r\n}\r\nfunction _hasAttrOrCssByKey(knode, map, mapKey) {\r\n\tmapKey = mapKey || knode.name;\r\n\tif (knode.type !== 1) {\r\n\t\treturn false;\r\n\t}\r\n\tvar newMap = _singleKeyMap(map);\r\n\tif (!newMap[mapKey]) {\r\n\t\treturn false;\r\n\t}\r\n\tvar arr = newMap[mapKey].split(',');\r\n\tfor (var i = 0, len = arr.length; i < len; i++) {\r\n\t\tvar key = arr[i];\r\n\t\tif (key === '*') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar match = /^(\\.?)([^=]+)(?:=([^=]*))?$/.exec(key);\r\n\t\tvar method = match[1] ? 'css' : 'attr';\r\n\t\tkey = match[2];\r\n\t\tvar val = match[3] || '';\r\n\t\tif (val === '' && knode[method](key) !== '') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (val !== '' && knode[method](key) === val) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\r\nfunction _removeAttrOrCss(knode, map) {\r\n\tif (knode.type != 1) {\r\n\t\treturn;\r\n\t}\r\n\t_removeAttrOrCssByKey(knode, map, '*');\r\n\t_removeAttrOrCssByKey(knode, map);\r\n}\r\nfunction _removeAttrOrCssByKey(knode, map, mapKey) {\r\n\tmapKey = mapKey || knode.name;\r\n\tif (knode.type !== 1) {\r\n\t\treturn;\r\n\t}\r\n\tvar newMap = _singleKeyMap(map);\r\n\tif (!newMap[mapKey]) {\r\n\t\treturn;\r\n\t}\r\n\tvar arr = newMap[mapKey].split(','), allFlag = false;\r\n\tfor (var i = 0, len = arr.length; i < len; i++) {\r\n\t\tvar key = arr[i];\r\n\t\tif (key === '*') {\r\n\t\t\tallFlag = true;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tvar match = /^(\\.?)([^=]+)(?:=([^=]*))?$/.exec(key);\r\n\t\tkey = match[2];\r\n\t\tif (match[1]) {\r\n\t\t\tkey = _toCamel(key);\r\n\t\t\tif (knode[0].style[key]) {\r\n\t\t\t\tknode[0].style[key] = '';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tknode.removeAttr(key);\r\n\t\t}\r\n\t}\r\n\tif (allFlag) {\r\n\t\tknode.remove(true);\r\n\t}\r\n}\r\r\nfunction _getInnerNode(knode) {\r\n\tvar inner = knode;\r\n\twhile (inner.first()) {\r\n\t\tinner = inner.first();\r\n\t}\r\n\treturn inner;\r\n}\r\r\nfunction _isEmptyNode(knode) {\r\n\tif (knode.type != 1 || knode.isSingle()) {\r\n\t\treturn false;\r\n\t}\r\n\treturn knode.html().replace(/<[^>]+>/g, '') === '';\r\n}\r\r\r\r\r\nfunction _mergeWrapper(a, b) {\r\n\ta = a.clone(true);\r\n\tvar lastA = _getInnerNode(a), childA = a, merged = false;\r\n\twhile (b) {\r\n\t\twhile (childA) {\r\n\t\t\tif (childA.name === b.name) {\r\n\t\t\t\t_mergeAttrs(childA, b.attr(), b.css());\r\n\t\t\t\tmerged = true;\r\n\t\t\t}\r\n\t\t\tchildA = childA.first();\r\n\t\t}\r\n\t\tif (!merged) {\r\n\t\t\tlastA.append(b.clone(false));\r\n\t\t}\r\n\t\tmerged = false;\r\n\t\tb = b.first();\r\n\t}\r\n\treturn a;\r\n}\r\r\nfunction _wrapNode(knode, wrapper) {\r\n\twrapper = wrapper.clone(true);\r\n\tif (knode.type == 3) {\r\n\t\t_getInnerNode(wrapper).append(knode.clone(false));\r\n\t\tknode.replaceWith(wrapper);\r\n\t\treturn wrapper;\r\n\t}\r\n\tvar nodeWrapper = knode, child;\r\n\twhile ((child = knode.first()) && child.children().length == 1) {\r\n\t\tknode = child;\r\n\t}\r\n\tchild = knode.first();\r\n\tvar frag = knode.doc.createDocumentFragment();\r\n\twhile (child) {\r\n\t\tfrag.appendChild(child[0]);\r\n\t\tchild = child.next();\r\n\t}\r\n\twrapper = _mergeWrapper(nodeWrapper, wrapper);\r\n\tif (frag.firstChild) {\r\n\t\t_getInnerNode(wrapper).append(frag);\r\n\t}\r\n\tnodeWrapper.replaceWith(wrapper);\r\n\treturn wrapper;\r\n}\r\r\nfunction _mergeAttrs(knode, attrs, styles) {\r\n\t_each(attrs, function(key, val) {\r\n\t\tif (key !== 'style') {\r\n\t\t\tknode.attr(key, val);\r\n\t\t}\r\n\t});\r\n\t_each(styles, function(key, val) {\r\n\t\tknode.css(key, val);\r\n\t});\r\n}\r\r\nfunction _inPreElement(knode) {\r\n\twhile (knode && knode.name != 'body') {\r\n\t\tif (_PRE_TAG_MAP[knode.name] || knode.name == 'div' && knode.hasClass('ke-script')) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tknode = knode.parent();\r\n\t}\r\n\treturn false;\r\n}\r\r\nfunction KCmd(range) {\r\n\tthis.init(range);\r\n}\r\n_extend(KCmd, {\r\n\tinit : function(range) {\r\n\t\tvar self = this, doc = range.doc;\r\n\t\tself.doc = doc;\r\n\t\tself.win = _getWin(doc);\r\n\t\tself.sel = _getSel(doc);\r\n\t\tself.range = range;\r\n\t},\r\n\tselection : function(forceReset) {\r\n\t\tvar self = this, doc = self.doc, rng = _getRng(doc);\r\n\t\tself.sel = _getSel(doc);\r\n\t\tif (rng) {\r\n\t\t\tself.range = _range(rng);\r\n\t\t\tif (K(self.range.startContainer).name == 'html') {\r\n\t\t\t\tself.range.selectNodeContents(doc.body).collapse(false);\r\n\t\t\t}\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tif (forceReset) {\r\n\t\t\tself.range.selectNodeContents(doc.body).collapse(false);\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tselect : function(hasDummy) {\r\n\t\thasDummy = _undef(hasDummy, true);\r\n\t\tvar self = this, sel = self.sel, range = self.range.cloneRange().shrink(),\r\n\t\t\tsc = range.startContainer, so = range.startOffset,\r\n\t\t\tec = range.endContainer, eo = range.endOffset,\r\n\t\t\tdoc = _getDoc(sc), win = self.win, rng, hasU200b = false;\r\n\t\tif (hasDummy && sc.nodeType == 1 && range.collapsed) {\r\n\t\t\tif (_IERANGE) {\r\n\t\t\t\tvar dummy = K('<span> </span>', doc);\r\n\t\t\t\trange.insertNode(dummy[0]);\r\n\t\t\t\trng = doc.body.createTextRange();\r\n\t\t\t\ttry {\r\n\t\t\t\t\trng.moveToElementText(dummy[0]);\r\n\t\t\t\t} catch(ex) {}\r\n\t\t\t\trng.collapse(false);\r\n\t\t\t\trng.select();\r\n\t\t\t\tdummy.remove();\r\n\t\t\t\twin.focus();\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\t\t\tif (_WEBKIT) {\r\n\t\t\t\tvar children = sc.childNodes;\r\n\t\t\t\tif (K(sc).isInline() || so > 0 && K(children[so - 1]).isInline() || children[so] && K(children[so]).isInline()) {\r\n\t\t\t\t\trange.insertNode(doc.createTextNode('\\u200B'));\r\n\t\t\t\t\thasU200b = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (_IERANGE) {\r\n\t\t\ttry {\r\n\t\t\t\trng = range.get(true);\r\n\t\t\t\trng.select();\r\n\t\t\t} catch(e) {}\r\n\t\t} else {\r\n\t\t\tif (hasU200b) {\r\n\t\t\t\trange.collapse(false);\r\n\t\t\t}\r\n\t\t\trng = range.get(true);\r\n\t\t\tsel.removeAllRanges();\r\n\t\t\tsel.addRange(rng);\r\n\t\t\tif (doc !== document) {\r\n\t\t\t\tvar pos = K(rng.endContainer).pos();\r\n\t\t\t\twin.scrollTo(pos.x, pos.y);\r\n\t\t\t}\r\n\t\t}\r\n\t\twin.focus();\r\n\t\treturn self;\r\n\t},\r\n\twrap : function(val) {\r\n\t\tvar self = this, doc = self.doc, range = self.range, wrapper;\r\n\t\twrapper = K(val, doc);\r\n\t\tif (range.collapsed) {\r\n\t\t\trange.shrink();\r\n\t\t\trange.insertNode(wrapper[0]).selectNodeContents(wrapper[0]);\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tif (wrapper.isBlock()) {\r\n\t\t\tvar copyWrapper = wrapper.clone(true), child = copyWrapper;\r\n\t\t\twhile (child.first()) {\r\n\t\t\t\tchild = child.first();\r\n\t\t\t}\r\n\t\t\tchild.append(range.extractContents());\r\n\t\t\trange.insertNode(copyWrapper[0]).selectNode(copyWrapper[0]);\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\trange.enlarge();\r\n\t\tvar bookmark = range.createBookmark(), ancestor = range.commonAncestor(), isStart = false;\r\n\t\tK(ancestor).scan(function(node) {\r\n\t\t\tif (!isStart && node == bookmark.start) {\r\n\t\t\t\tisStart = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (isStart) {\r\n\t\t\t\tif (node == bookmark.end) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tvar knode = K(node);\r\n\t\t\t\tif (_inPreElement(knode)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (knode.type == 3 && _trim(node.nodeValue).length > 0) {\r\n\t\t\t\t\tvar parent;\r\n\t\t\t\t\twhile ((parent = knode.parent()) && parent.isStyle() && parent.children().length == 1) {\r\n\t\t\t\t\t\tknode = parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_wrapNode(knode, wrapper);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\trange.moveToBookmark(bookmark);\r\n\t\treturn self;\r\n\t},\r\n\tsplit : function(isStart, map) {\r\n\t\tvar range = this.range, doc = range.doc;\r\n\t\tvar tempRange = range.cloneRange().collapse(isStart);\r\n\t\tvar node = tempRange.startContainer, pos = tempRange.startOffset,\r\n\t\t\tparent = node.nodeType == 3 ? node.parentNode : node,\r\n\t\t\tneedSplit = false, knode;\r\n\t\twhile (parent && parent.parentNode) {\r\n\t\t\tknode = K(parent);\r\n\t\t\tif (map) {\r\n\t\t\t\tif (!knode.isStyle()) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif (!_hasAttrOrCss(knode, map)) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (_NOSPLIT_TAG_MAP[knode.name]) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tneedSplit = true;\r\n\t\t\tparent = parent.parentNode;\r\n\t\t}\r\n\t\tif (needSplit) {\r\n\t\t\tvar dummy = doc.createElement('span');\r\n\t\t\trange.cloneRange().collapse(!isStart).insertNode(dummy);\r\n\t\t\tif (isStart) {\r\n\t\t\t\ttempRange.setStartBefore(parent.firstChild).setEnd(node, pos);\r\n\t\t\t} else {\r\n\t\t\t\ttempRange.setStart(node, pos).setEndAfter(parent.lastChild);\r\n\t\t\t}\r\n\t\t\tvar frag = tempRange.extractContents(),\r\n\t\t\t\tfirst = frag.firstChild, last = frag.lastChild;\r\n\t\t\tif (isStart) {\r\n\t\t\t\ttempRange.insertNode(frag);\r\n\t\t\t\trange.setStartAfter(last).setEndBefore(dummy);\r\n\t\t\t} else {\r\n\t\t\t\tparent.appendChild(frag);\r\n\t\t\t\trange.setStartBefore(dummy).setEndBefore(first);\r\n\t\t\t}\r\n\t\t\tvar dummyParent = dummy.parentNode;\r\n\t\t\tif (dummyParent == range.endContainer) {\r\n\t\t\t\tvar prev = K(dummy).prev(), next = K(dummy).next();\r\n\t\t\t\tif (prev && next && prev.type == 3 && next.type == 3) {\r\n\t\t\t\t\trange.setEnd(prev[0], prev[0].nodeValue.length);\r\n\t\t\t\t} else if (!isStart) {\r\n\t\t\t\t\trange.setEnd(range.endContainer, range.endOffset - 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdummyParent.removeChild(dummy);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\tremove : function(map) {\r\n\t\tvar self = this, doc = self.doc, range = self.range;\r\n\t\trange.enlarge();\r\n\t\tif (range.startOffset === 0) {\r\n\t\t\tvar ksc = K(range.startContainer), parent;\r\n\t\t\twhile ((parent = ksc.parent()) && parent.isStyle() && parent.children().length == 1) {\r\n\t\t\t\tksc = parent;\r\n\t\t\t}\r\n\t\t\trange.setStart(ksc[0], 0);\r\n\t\t\tksc = K(range.startContainer);\r\n\t\t\tif (ksc.isBlock()) {\r\n\t\t\t\t_removeAttrOrCss(ksc, map);\r\n\t\t\t}\r\n\t\t\tvar kscp = ksc.parent();\r\n\t\t\tif (kscp && kscp.isBlock()) {\r\n\t\t\t\t_removeAttrOrCss(kscp, map);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar sc, so;\r\n\t\tif (range.collapsed) {\r\n\t\t\tself.split(true, map);\r\n\t\t\tsc = range.startContainer;\r\n\t\t\tso = range.startOffset;\r\n\t\t\tif (so > 0) {\r\n\t\t\t\tvar sb = K(sc.childNodes[so - 1]);\r\n\t\t\t\tif (sb && _isEmptyNode(sb)) {\r\n\t\t\t\t\tsb.remove();\r\n\t\t\t\t\trange.setStart(sc, so - 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar sa = K(sc.childNodes[so]);\r\n\t\t\tif (sa && _isEmptyNode(sa)) {\r\n\t\t\t\tsa.remove();\r\n\t\t\t}\r\n\t\t\tif (_isEmptyNode(sc)) {\r\n\t\t\t\trange.startBefore(sc);\r\n\t\t\t\tsc.remove();\r\n\t\t\t}\r\n\t\t\trange.collapse(true);\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tself.split(true, map);\r\n\t\tself.split(false, map);\r\n\t\tvar startDummy = doc.createElement('span'), endDummy = doc.createElement('span');\r\n\t\trange.cloneRange().collapse(false).insertNode(endDummy);\r\n\t\trange.cloneRange().collapse(true).insertNode(startDummy);\r\n\t\tvar nodeList = [], cmpStart = false;\r\n\t\tK(range.commonAncestor()).scan(function(node) {\r\n\t\t\tif (!cmpStart && node == startDummy) {\r\n\t\t\t\tcmpStart = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (node == endDummy) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (cmpStart) {\r\n\t\t\t\tnodeList.push(node);\r\n\t\t\t}\r\n\t\t});\r\n\t\tK(startDummy).remove();\r\n\t\tK(endDummy).remove();\r\n\t\tsc = range.startContainer;\r\n\t\tso = range.startOffset;\r\n\t\tvar ec = range.endContainer, eo = range.endOffset;\r\n\t\tif (so > 0) {\r\n\t\t\tvar startBefore = K(sc.childNodes[so - 1]);\r\n\t\t\tif (startBefore && _isEmptyNode(startBefore)) {\r\n\t\t\t\tstartBefore.remove();\r\n\t\t\t\trange.setStart(sc, so - 1);\r\n\t\t\t\tif (sc == ec) {\r\n\t\t\t\t\trange.setEnd(ec, eo - 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar startAfter = K(sc.childNodes[so]);\r\n\t\t\tif (startAfter && _isEmptyNode(startAfter)) {\r\n\t\t\t\tstartAfter.remove();\r\n\t\t\t\tif (sc == ec) {\r\n\t\t\t\t\trange.setEnd(ec, eo - 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar endAfter = K(ec.childNodes[range.endOffset]);\r\n\t\tif (endAfter && _isEmptyNode(endAfter)) {\r\n\t\t\tendAfter.remove();\r\n\t\t}\r\n\t\tvar bookmark = range.createBookmark(true);\r\n\t\t_each(nodeList, function(i, node) {\r\n\t\t\t_removeAttrOrCss(K(node), map);\r\n\t\t});\r\n\t\trange.moveToBookmark(bookmark);\r\n\t\treturn self;\r\n\t},\r\n\tcommonNode : function(map) {\r\n\t\tvar range = this.range;\r\n\t\tvar ec = range.endContainer, eo = range.endOffset,\r\n\t\t\tnode = (ec.nodeType == 3 || eo === 0) ? ec : ec.childNodes[eo - 1];\r\n\t\tfunction find(node) {\r\n\t\t\tvar child = node, parent = node;\r\n\t\t\twhile (parent) {\r\n\t\t\t\tif (_hasAttrOrCss(K(parent), map)) {\r\n\t\t\t\t\treturn K(parent);\r\n\t\t\t\t}\r\n\t\t\t\tparent = parent.parentNode;\r\n\t\t\t}\r\n\t\t\twhile (child && (child = child.lastChild)) {\r\n\t\t\t\tif (_hasAttrOrCss(K(child), map)) {\r\n\t\t\t\t\treturn K(child);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tvar cNode = find(node);\r\n\t\tif (cNode) {\r\n\t\t\treturn cNode;\r\n\t\t}\r\n\t\tif (node.nodeType == 1 || (ec.nodeType == 3 && eo === 0)) {\r\n\t\t\tvar prev = K(node).prev();\r\n\t\t\tif (prev) {\r\n\t\t\t\treturn find(prev);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\tcommonAncestor : function(tagName) {\r\n\t\tvar range = this.range,\r\n\t\t\tsc = range.startContainer, so = range.startOffset,\r\n\t\t\tec = range.endContainer, eo = range.endOffset,\r\n\t\t\tstartNode = (sc.nodeType == 3 || so === 0) ? sc : sc.childNodes[so - 1],\r\n\t\t\tendNode = (ec.nodeType == 3 || eo === 0) ? ec : ec.childNodes[eo - 1];\r\n\t\tfunction find(node) {\r\n\t\t\twhile (node) {\r\n\t\t\t\tif (node.nodeType == 1) {\r\n\t\t\t\t\tif (node.tagName.toLowerCase() === tagName) {\r\n\t\t\t\t\t\treturn node;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tnode = node.parentNode;\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tvar start = find(startNode), end = find(endNode);\r\n\t\tif (start && end && start === end) {\r\n\t\t\treturn K(start);\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\tstate : function(key) {\r\n\t\tvar self = this, doc = self.doc, bool = false;\r\n\t\ttry {\r\n\t\t\tbool = doc.queryCommandState(key);\r\n\t\t} catch (e) {}\r\n\t\treturn bool;\r\n\t},\r\n\tval : function(key) {\r\n\t\tvar self = this, doc = self.doc, range = self.range;\r\n\t\tfunction lc(val) {\r\n\t\t\treturn val.toLowerCase();\r\n\t\t}\r\n\t\tkey = lc(key);\r\n\t\tvar val = '', knode;\r\n\t\tif (key === 'fontfamily' || key === 'fontname') {\r\n\t\t\tval = _nativeCommandValue(doc, 'fontname');\r\n\t\t\tval = val.replace(/['\"]/g, '');\r\n\t\t\treturn lc(val);\r\n\t\t}\r\n\t\tif (key === 'formatblock') {\r\n\t\t\tval = _nativeCommandValue(doc, key);\r\n\t\t\tif (val === '') {\r\n\t\t\t\tknode = self.commonNode({'h1,h2,h3,h4,h5,h6,p,div,pre,address' : '*'});\r\n\t\t\t\tif (knode) {\r\n\t\t\t\t\tval = knode.name;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (val === 'Normal') {\r\n\t\t\t\tval = 'p';\r\n\t\t\t}\r\n\t\t\treturn lc(val);\r\n\t\t}\r\n\t\tif (key === 'fontsize') {\r\n\t\t\tknode = self.commonNode({'*' : '.font-size'});\r\n\t\t\tif (knode) {\r\n\t\t\t\tval = knode.css('font-size');\r\n\t\t\t}\r\n\t\t\treturn lc(val);\r\n\t\t}\r\n\t\tif (key === 'forecolor') {\r\n\t\t\tknode = self.commonNode({'*' : '.color'});\r\n\t\t\tif (knode) {\r\n\t\t\t\tval = knode.css('color');\r\n\t\t\t}\r\n\t\t\tval = _toHex(val);\r\n\t\t\tif (val === '') {\r\n\t\t\t\tval = 'default';\r\n\t\t\t}\r\n\t\t\treturn lc(val);\r\n\t\t}\r\n\t\tif (key === 'hilitecolor') {\r\n\t\t\tknode = self.commonNode({'*' : '.background-color'});\r\n\t\t\tif (knode) {\r\n\t\t\t\tval = knode.css('background-color');\r\n\t\t\t}\r\n\t\t\tval = _toHex(val);\r\n\t\t\tif (val === '') {\r\n\t\t\t\tval = 'default';\r\n\t\t\t}\r\n\t\t\treturn lc(val);\r\n\t\t}\r\n\t\treturn val;\r\n\t},\r\n\ttoggle : function(wrapper, map) {\r\n\t\tvar self = this;\r\n\t\tif (self.commonNode(map)) {\r\n\t\t\tself.remove(map);\r\n\t\t} else {\r\n\t\t\tself.wrap(wrapper);\r\n\t\t}\r\n\t\treturn self.select();\r\n\t},\r\n\tbold : function() {\r\n\t\treturn this.toggle('<strong></strong>', {\r\n\t\t\tspan : '.font-weight=bold',\r\n\t\t\tstrong : '*',\r\n\t\t\tb : '*'\r\n\t\t});\r\n\t},\r\n\titalic : function() {\r\n\t\treturn this.toggle('<em></em>', {\r\n\t\t\tspan : '.font-style=italic',\r\n\t\t\tem : '*',\r\n\t\t\ti : '*'\r\n\t\t});\r\n\t},\r\n\tunderline : function() {\r\n\t\treturn this.toggle('<u></u>', {\r\n\t\t\tspan : '.text-decoration=underline',\r\n\t\t\tu : '*'\r\n\t\t});\r\n\t},\r\n\tstrikethrough : function() {\r\n\t\treturn this.toggle('<s></s>', {\r\n\t\t\tspan : '.text-decoration=line-through',\r\n\t\t\ts : '*'\r\n\t\t});\r\n\t},\r\n\tforecolor : function(val) {\r\n\t\treturn this.wrap('<span style=\"color:' + val + ';\"></span>').select();\r\n\t},\r\n\thilitecolor : function(val) {\r\n\t\treturn this.wrap('<span style=\"background-color:' + val + ';\"></span>').select();\r\n\t},\r\n\tfontsize : function(val) {\r\n\t\treturn this.wrap('<span style=\"font-size:' + val + ';\"></span>').select();\r\n\t},\r\n\tfontname : function(val) {\r\n\t\treturn this.fontfamily(val);\r\n\t},\r\n\tfontfamily : function(val) {\r\n\t\treturn this.wrap('<span style=\"font-family:' + val + ';\"></span>').select();\r\n\t},\r\n\tremoveformat : function() {\r\n\t\tvar map = {\r\n\t\t\t'*' : '.font-weight,.font-style,.text-decoration,.color,.background-color,.font-size,.font-family,.text-indent'\r\n\t\t},\r\n\t\ttags = _STYLE_TAG_MAP;\r\n\t\t_each(tags, function(key, val) {\r\n\t\t\tmap[key] = '*';\r\n\t\t});\r\n\t\tthis.remove(map);\r\n\t\treturn this.select();\r\n\t},\r\n\tinserthtml : function(val, quickMode) {\r\n\t\tvar self = this, range = self.range;\r\n\t\tif (val === '') {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tfunction pasteHtml(range, val) {\r\n\t\t\tval = '<img id=\"__kindeditor_temp_tag__\" width=\"0\" height=\"0\" style=\"display:none;\" />' + val;\r\n\t\t\tvar rng = range.get();\r\n\t\t\tif (rng.item) {\r\n\t\t\t\trng.item(0).outerHTML = val;\r\n\t\t\t} else {\r\n\t\t\t\trng.pasteHTML(val);\r\n\t\t\t}\r\n\t\t\tvar temp = range.doc.getElementById('__kindeditor_temp_tag__');\r\n\t\t\ttemp.parentNode.removeChild(temp);\r\n\t\t\tvar newRange = _toRange(rng);\r\n\t\t\trange.setEnd(newRange.endContainer, newRange.endOffset);\r\n\t\t\trange.collapse(false);\r\n\t\t\tself.select(false);\r\n\t\t}\r\n\t\tfunction insertHtml(range, val) {\r\n\t\t\tvar doc = range.doc,\r\n\t\t\t\tfrag = doc.createDocumentFragment();\r\n\t\t\tK('@' + val, doc).each(function() {\r\n\t\t\t\tfrag.appendChild(this);\r\n\t\t\t});\r\n\t\t\trange.deleteContents();\r\n\t\t\trange.insertNode(frag);\r\n\t\t\trange.collapse(false);\r\n\t\t\tself.select(false);\r\n\t\t}\r\n\t\tif (_IERANGE && quickMode) {\r\n\t\t\ttry {\r\n\t\t\t\tpasteHtml(range, val);\r\n\t\t\t} catch(e) {\r\n\t\t\t\tinsertHtml(range, val);\r\n\t\t\t}\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tinsertHtml(range, val);\r\n\t\treturn self;\r\n\t},\r\n\thr : function() {\r\n\t\treturn this.inserthtml('<hr />');\r\n\t},\r\n\tprint : function() {\r\n\t\tthis.win.print();\r\n\t\treturn this;\r\n\t},\r\n\tinsertimage : function(url, title, width, height, border, align) {\r\n\t\ttitle = _undef(title, '');\r\n\t\tborder = _undef(border, 0);\r\n\t\tvar html = '<img src=\"' + _escape(url) + '\" data-ke-src=\"' + _escape(url) + '\" ';\r\n\t\tif (width) {\r\n\t\t\thtml += 'width=\"' + _escape(width) + '\" ';\r\n\t\t}\r\n\t\tif (height) {\r\n\t\t\thtml += 'height=\"' + _escape(height) + '\" ';\r\n\t\t}\r\n\t\tif (title) {\r\n\t\t\thtml += 'title=\"' + _escape(title) + '\" ';\r\n\t\t}\r\n\t\tif (align) {\r\n\t\t\thtml += 'align=\"' + _escape(align) + '\" ';\r\n\t\t}\r\n\t\thtml += 'alt=\"' + _escape(title) + '\" ';\r\n\t\thtml += '/>';\r\n\t\treturn this.inserthtml(html);\r\n\t},\r\n\tcreatelink : function(url, type) {\r\n\t\tvar self = this, doc = self.doc, range = self.range;\r\n\t\tself.select();\r\n\t\tvar a = self.commonNode({ a : '*' });\r\n\t\tif (a && !range.isControl()) {\r\n\t\t\trange.selectNode(a.get());\r\n\t\t\tself.select();\r\n\t\t}\r\n\t\tvar html = '<a href=\"' + _escape(url) + '\" data-ke-src=\"' + _escape(url) + '\" ';\r\n\t\tif (type) {\r\n\t\t\thtml += ' target=\"' + _escape(type) + '\"';\r\n\t\t}\r\n\t\tif (range.collapsed) {\r\n\t\t\thtml += '>' + _escape(url) + '</a>';\r\n\t\t\treturn self.inserthtml(html);\r\n\t\t}\r\n\t\tif (range.isControl()) {\r\n\t\t\tvar node = K(range.startContainer.childNodes[range.startOffset]);\r\n\t\t\thtml += '></a>';\r\n\t\t\tnode.after(K(html, doc));\r\n\t\t\tnode.next().append(node);\r\n\t\t\trange.selectNode(node[0]);\r\n\t\t\treturn self.select();\r\n\t\t}\r\n\t\tfunction setAttr(node, url, type) {\r\n\t\t\tK(node).attr('href', url).attr('data-ke-src', url);\r\n\t\t\tif (type) {\r\n\t\t\t\tK(node).attr('target', type);\r\n\t\t\t} else {\r\n\t\t\t\tK(node).removeAttr('target');\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar sc = range.startContainer, so = range.startOffset,\r\n\t\t\tec = range.endContainer, eo = range.endOffset;\r\n\t\tif (sc.nodeType == 1 && sc === ec && so + 1 === eo) {\r\n\t\t\tvar child = sc.childNodes[so];\r\n\t\t\tif (child.nodeName.toLowerCase() == 'a') {\r\n\t\t\t\tsetAttr(child, url, type);\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\t\t}\r\n\t\t_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');\r\n\t\tK('a[href=\"__kindeditor_temp_url__\"]', doc).each(function() {\r\n\t\t\tsetAttr(this, url, type);\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\tunlink : function() {\r\n\t\tvar self = this, doc = self.doc, range = self.range;\r\n\t\tself.select();\r\n\t\tif (range.collapsed) {\r\n\t\t\tvar a = self.commonNode({ a : '*' });\r\n\t\t\tif (a) {\r\n\t\t\t\trange.selectNode(a.get());\r\n\t\t\t\tself.select();\r\n\t\t\t}\r\n\t\t\t_nativeCommand(doc, 'unlink', null);\r\n\t\t\tif (_WEBKIT && K(range.startContainer).name === 'img') {\r\n\t\t\t\tvar parent = K(range.startContainer).parent();\r\n\t\t\t\tif (parent.name === 'a') {\r\n\t\t\t\t\tparent.remove(true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_nativeCommand(doc, 'unlink', null);\r\n\t\t}\r\n\t\treturn self;\r\n\t}\r\n});\r\n_each(('formatblock,selectall,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,' +\r\n\t'insertunorderedlist,indent,outdent,subscript,superscript').split(','), function(i, name) {\r\n\tKCmd.prototype[name] = function(val) {\r\n\t\tvar self = this;\r\n\t\tself.select();\r\n\t\t_nativeCommand(self.doc, name, val);\r\n\t\tif (_IERANGE && _inArray(name, 'justifyleft,justifycenter,justifyright,justifyfull'.split(',')) >= 0) {\r\n\t\t\tself.selection();\r\n\t\t}\r\n\t\tif (!_IERANGE || _inArray(name, 'formatblock,selectall,insertorderedlist,insertunorderedlist'.split(',')) >= 0) {\r\n\t\t\tself.selection();\r\n\t\t}\r\n\t\treturn self;\r\n\t};\r\n});\r\n_each('cut,copy,paste'.split(','), function(i, name) {\r\n\tKCmd.prototype[name] = function() {\r\n\t\tvar self = this;\r\n\t\tif (!self.doc.queryCommandSupported(name)) {\r\n\t\t\tthrow 'not supported';\r\n\t\t}\r\n\t\tself.select();\r\n\t\t_nativeCommand(self.doc, name, null);\r\n\t\treturn self;\r\n\t};\r\n});\r\nfunction _cmd(mixed) {\r\n\tif (mixed.nodeName) {\r\n\t\tvar doc = _getDoc(mixed);\r\n\t\tmixed = _range(doc).selectNodeContents(doc.body).collapse(false);\r\n\t}\r\n\treturn new KCmd(mixed);\r\n}\r\nK.CmdClass = KCmd;\r\nK.cmd = _cmd;\r\n\n\r\nfunction _drag(options) {\r\n\tvar moveEl = options.moveEl,\r\n\t\tmoveFn = options.moveFn,\r\n\t\tclickEl = options.clickEl || moveEl,\r\n\t\tbeforeDrag = options.beforeDrag,\r\n\t\tiframeFix = options.iframeFix === undefined ? true : options.iframeFix;\r\n\tvar docs = [document];\r\n\tif (iframeFix) {\r\n\t\tK('iframe').each(function() {\r\n\t\t\tvar src = _formatUrl(this.src || '', 'absolute');\r\n\t\t\tif (/^https?:\\/\\//.test(src)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar doc;\r\n\t\t\ttry {\r\n\t\t\t\tdoc = _iframeDoc(this);\r\n\t\t\t} catch(e) {}\r\n\t\t\tif (doc) {\r\n\t\t\t\tvar pos = K(this).pos();\r\n\t\t\t\tK(doc).data('pos-x', pos.x);\r\n\t\t\t\tK(doc).data('pos-y', pos.y);\r\n\t\t\t\tdocs.push(doc);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tclickEl.mousedown(function(e) {\r\n\t\tif(e.button !== 0 && e.button !== 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\te.stopPropagation();\r\n\t\tvar self = clickEl.get(),\r\n\t\t\tx = _removeUnit(moveEl.css('left')),\r\n\t\t\ty = _removeUnit(moveEl.css('top')),\r\n\t\t\twidth = moveEl.width(),\r\n\t\t\theight = moveEl.height(),\r\n\t\t\tpageX = e.pageX,\r\n\t\t\tpageY = e.pageY;\r\n\t\tif (beforeDrag) {\r\n\t\t\tbeforeDrag();\r\n\t\t}\r\n\t\tfunction moveListener(e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar kdoc = K(_getDoc(e.target));\r\n\t\t\tvar diffX = _round((kdoc.data('pos-x') || 0) + e.pageX - pageX);\r\n\t\t\tvar diffY = _round((kdoc.data('pos-y') || 0) + e.pageY - pageY);\r\n\t\t\tmoveFn.call(clickEl, x, y, width, height, diffX, diffY);\r\n\t\t}\r\n\t\tfunction selectListener(e) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\tfunction upListener(e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tK(docs).unbind('mousemove', moveListener)\r\n\t\t\t\t.unbind('mouseup', upListener)\r\n\t\t\t\t.unbind('selectstart', selectListener);\r\n\t\t\tif (self.releaseCapture) {\r\n\t\t\t\tself.releaseCapture();\r\n\t\t\t}\r\n\t\t}\r\n\t\tK(docs).mousemove(moveListener)\r\n\t\t\t.mouseup(upListener)\r\n\t\t\t.bind('selectstart', selectListener);\r\n\t\tif (self.setCapture) {\r\n\t\t\tself.setCapture();\r\n\t\t}\r\n\t});\r\n}\r\n\r\r\nfunction KWidget(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KWidget, {\r\n\tinit : function(options) {\r\n\t\tvar self = this;\r\n\t\tself.name = options.name || '';\r\n\t\tself.doc = options.doc || document;\r\n\t\tself.win = _getWin(self.doc);\r\n\t\tself.x = _addUnit(options.x);\r\n\t\tself.y = _addUnit(options.y);\r\n\t\tself.z = options.z;\r\n\t\tself.width = _addUnit(options.width);\r\n\t\tself.height = _addUnit(options.height);\r\n\t\tself.div = K('<div style=\"display:block;\"></div>');\r\n\t\tself.options = options;\r\n\t\tself._alignEl = options.alignEl;\r\n\t\tif (self.width) {\r\n\t\t\tself.div.css('width', self.width);\r\n\t\t}\r\n\t\tif (self.height) {\r\n\t\t\tself.div.css('height', self.height);\r\n\t\t}\r\n\t\tif (self.z) {\r\n\t\t\tself.div.css({\r\n\t\t\t\tposition : 'absolute',\r\n\t\t\t\tleft : self.x,\r\n\t\t\t\ttop : self.y,\r\n\t\t\t\t'z-index' : self.z\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (self.z && (self.x === undefined || self.y === undefined)) {\r\n\t\t\tself.autoPos(self.width, self.height);\r\n\t\t}\r\n\t\tif (options.cls) {\r\n\t\t\tself.div.addClass(options.cls);\r\n\t\t}\r\n\t\tif (options.shadowMode) {\r\n\t\t\tself.div.addClass('ke-shadow');\r\n\t\t}\r\n\t\tif (options.css) {\r\n\t\t\tself.div.css(options.css);\r\n\t\t}\r\n\t\tif (options.src) {\r\n\t\t\tK(options.src).replaceWith(self.div);\r\n\t\t} else {\r\n\t\t\tK(self.doc.body).append(self.div);\r\n\t\t}\r\n\t\tif (options.html) {\r\n\t\t\tself.div.html(options.html);\r\n\t\t}\r\n\t\tif (options.autoScroll) {\r\n\t\t\tif (_IE && _V < 7 || _QUIRKS) {\r\n\t\t\t\tvar scrollPos = _getScrollPos();\r\n\t\t\t\tK(self.win).bind('scroll', function(e) {\r\n\t\t\t\t\tvar pos = _getScrollPos(),\r\n\t\t\t\t\t\tdiffX = pos.x - scrollPos.x,\r\n\t\t\t\t\t\tdiffY = pos.y - scrollPos.y;\r\n\t\t\t\t\tself.pos(_removeUnit(self.x) + diffX, _removeUnit(self.y) + diffY, false);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tself.div.css('position', 'fixed');\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tpos : function(x, y, updateProp) {\r\n\t\tvar self = this;\r\n\t\tupdateProp = _undef(updateProp, true);\r\n\t\tif (x !== null) {\r\n\t\t\tx = x < 0 ? 0 : _addUnit(x);\r\n\t\t\tself.div.css('left', x);\r\n\t\t\tif (updateProp) {\r\n\t\t\t\tself.x = x;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (y !== null) {\r\n\t\t\ty = y < 0 ? 0 : _addUnit(y);\r\n\t\t\tself.div.css('top', y);\r\n\t\t\tif (updateProp) {\r\n\t\t\t\tself.y = y;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tautoPos : function(width, height) {\r\n\t\tvar self = this,\r\n\t\t\tw = _removeUnit(width) || 0,\r\n\t\t\th = _removeUnit(height) || 0,\r\n\t\t\tscrollPos = _getScrollPos();\r\n\t\tif (self._alignEl) {\r\n\t\t\tvar knode = K(self._alignEl),\r\n\t\t\t\tpos = knode.pos(),\r\n\t\t\t\tdiffX = _round(knode[0].clientWidth / 2 - w / 2),\r\n\t\t\t\tdiffY = _round(knode[0].clientHeight / 2 - h / 2);\r\n\t\t\tx = diffX < 0 ? pos.x : pos.x + diffX;\r\n\t\t\ty = diffY < 0 ? pos.y : pos.y + diffY;\r\n\t\t} else {\r\n\t\t\tvar docEl = _docElement(self.doc);\r\n\t\t\tx = _round(scrollPos.x + (docEl.clientWidth - w) / 2);\r\n\t\t\ty = _round(scrollPos.y + (docEl.clientHeight - h) / 2);\r\n\t\t}\r\n\t\tif (!(_IE && _V < 7 || _QUIRKS)) {\r\n\t\t\tx -= scrollPos.x;\r\n\t\t\ty -= scrollPos.y;\r\n\t\t}\r\n\t\treturn self.pos(x, y);\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this;\r\n\t\tif (_IE && _V < 7 || _QUIRKS) {\r\n\t\t\tK(self.win).unbind('scroll');\r\n\t\t}\r\n\t\tself.div.remove();\r\n\t\t_each(self, function(i) {\r\n\t\t\tself[i] = null;\r\n\t\t});\r\n\t\treturn this;\r\n\t},\r\n\tshow : function() {\r\n\t\tthis.div.show();\r\n\t\treturn this;\r\n\t},\r\n\thide : function() {\r\n\t\tthis.div.hide();\r\n\t\treturn this;\r\n\t},\r\n\tdraggable : function(options) {\r\n\t\tvar self = this;\r\n\t\toptions = options || {};\r\n\t\toptions.moveEl = self.div;\r\n\t\toptions.moveFn = function(x, y, width, height, diffX, diffY) {\r\n\t\t\tif ((x = x + diffX) < 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\t\t\tif ((y = y + diffY) < 0) {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\t\t\tself.pos(x, y);\r\n\t\t};\r\n\t\t_drag(options);\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _widget(options) {\r\n\treturn new KWidget(options);\r\n}\r\nK.WidgetClass = KWidget;\r\nK.widget = _widget;\r\n\n\r\nfunction _iframeDoc(iframe) {\r\n\tiframe = _get(iframe);\r\n\treturn iframe.contentDocument || iframe.contentWindow.document;\r\n}\r\nvar html, _direction = '';\r\nif ((html = document.getElementsByTagName('html'))) {\r\n\t_direction = html[0].dir;\r\n}\r\nfunction _getInitHtml(themesPath, bodyClass, cssPath, cssData) {\r\n\tvar arr = [\r\n\t\t(_direction === '' ? '<html>' : '<html dir=\"' + _direction + '\">'),\r\n\t\t'<head><meta charset=\"utf-8\" /><title></title>',\r\n\t\t'<style>',\r\n\t\t'html {margin:0;padding:0;}',\r\n\t\t'body {margin:0;padding:5px;}',\r\n\t\t'body, td {font:12px/1.5 \"sans serif\",tahoma,verdana,helvetica;}',\r\n\t\t'body, p, div {word-wrap: break-word;}',\r\n\t\t'p {margin:5px 0;}',\r\n\t\t'table {border-collapse:collapse;}',\r\n\t\t'img {border:0;}',\r\n\t\t'noscript {display:none;}',\r\n\t\t'table.ke-zeroborder td {border:1px dotted #AAA;}',\r\n\t\t'img.ke-flash {',\r\n\t\t'\tborder:1px solid #AAA;',\r\n\t\t'\tbackground-image:url(' + themesPath + 'common/flash.gif);',\r\n\t\t'\tbackground-position:center center;',\r\n\t\t'\tbackground-repeat:no-repeat;',\r\n\t\t'\twidth:100px;',\r\n\t\t'\theight:100px;',\r\n\t\t'}',\r\n\t\t'img.ke-rm {',\r\n\t\t'\tborder:1px solid #AAA;',\r\n\t\t'\tbackground-image:url(' + themesPath + 'common/rm.gif);',\r\n\t\t'\tbackground-position:center center;',\r\n\t\t'\tbackground-repeat:no-repeat;',\r\n\t\t'\twidth:100px;',\r\n\t\t'\theight:100px;',\r\n\t\t'}',\r\n\t\t'img.ke-media {',\r\n\t\t'\tborder:1px solid #AAA;',\r\n\t\t'\tbackground-image:url(' + themesPath + 'common/media.gif);',\r\n\t\t'\tbackground-position:center center;',\r\n\t\t'\tbackground-repeat:no-repeat;',\r\n\t\t'\twidth:100px;',\r\n\t\t'\theight:100px;',\r\n\t\t'}',\r\n\t\t'img.ke-anchor {',\r\n\t\t'\tborder:1px dashed #666;',\r\n\t\t'\twidth:16px;',\r\n\t\t'\theight:16px;',\r\n\t\t'}',\r\n\t\t'.ke-script, .ke-noscript, .ke-display-none {',\r\n\t\t'\tdisplay:none;',\r\n\t\t'\tfont-size:0;',\r\n\t\t'\twidth:0;',\r\n\t\t'\theight:0;',\r\n\t\t'}',\r\n\t\t'.ke-pagebreak {',\r\n\t\t'\tborder:1px dotted #AAA;',\r\n\t\t'\tfont-size:0;',\r\n\t\t'\theight:2px;',\r\n\t\t'}',\r\n\t\t'</style>'\r\n\t];\r\n\tif (!_isArray(cssPath)) {\r\n\t\tcssPath = [cssPath];\r\n\t}\r\n\t_each(cssPath, function(i, path) {\r\n\t\tif (path) {\r\n\t\t\tarr.push('<link href=\"' + path + '\" rel=\"stylesheet\" />');\r\n\t\t}\r\n\t});\r\n\tif (cssData) {\r\n\t\tarr.push('<style>' + cssData + '</style>');\r\n\t}\r\n\tarr.push('</head><body ' + (bodyClass ? 'class=\"' + bodyClass + '\"' : '') + '></body></html>');\r\n\treturn arr.join('\\n');\r\n}\r\nfunction _elementVal(knode, val) {\r\n\tif (knode.hasVal()) {\r\n\t\tif (val === undefined) {\r\n\t\t\tvar html = knode.val();\r\n\t\t\thtml = html.replace(/(<(?:p|p\\s[^>]*)>) *(<\\/p>)/ig, '');\r\n\t\t\treturn html;\r\n\t\t}\r\n\t\treturn knode.val(val);\r\n\t}\r\n\treturn knode.html(val);\r\n}\r\n\r\r\nfunction KEdit(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KEdit, KWidget, {\r\n\tinit : function(options) {\r\n\t\tvar self = this;\r\n\t\tKEdit.parent.init.call(self, options);\r\n\t\tself.srcElement = K(options.srcElement);\r\n\t\tself.div.addClass('ke-edit');\r\n\t\tself.designMode = _undef(options.designMode, true);\r\n\t\tself.beforeGetHtml = options.beforeGetHtml;\r\n\t\tself.beforeSetHtml = options.beforeSetHtml;\r\n\t\tself.afterSetHtml = options.afterSetHtml;\r\n\t\tvar themesPath = _undef(options.themesPath, ''),\r\n\t\t\tbodyClass = options.bodyClass,\r\n\t\t\tcssPath = options.cssPath,\r\n\t\t\tcssData = options.cssData,\r\n\t\t\tisDocumentDomain = location.protocol != 'res:' && location.host.replace(/:\\d+/, '') !== document.domain,\r\n\t\t\tsrcScript = ('document.open();' +\r\n\t\t\t\t(isDocumentDomain ? 'document.domain=\"' + document.domain + '\";' : '') +\r\n\t\t\t\t'document.close();'),\r\n\t\t\tiframeSrc = _IE ? ' src=\"javascript:void(function(){' + encodeURIComponent(srcScript) + '}())\"' : '';\r\n\t\tself.iframe = K('<iframe class=\"ke-edit-iframe\" hidefocus=\"true\" frameborder=\"0\"' + iframeSrc + '></iframe>').css('width', '100%');\r\n\t\tself.textarea = K('<textarea class=\"ke-edit-textarea\" hidefocus=\"true\"></textarea>').css('width', '100%');\r\n\t\tself.tabIndex = isNaN(parseInt(options.tabIndex, 10)) ? self.srcElement.attr('tabindex') : parseInt(options.tabIndex, 10);\r\n\t\tself.iframe.attr('tabindex', self.tabIndex);\r\n\t\tself.textarea.attr('tabindex', self.tabIndex);\r\n\t\tif (self.width) {\r\n\t\t\tself.setWidth(self.width);\r\n\t\t}\r\n\t\tif (self.height) {\r\n\t\t\tself.setHeight(self.height);\r\n\t\t}\r\n\t\tif (self.designMode) {\r\n\t\t\tself.textarea.hide();\r\n\t\t} else {\r\n\t\t\tself.iframe.hide();\r\n\t\t}\r\n\t\tfunction ready() {\r\n\t\t\tvar doc = _iframeDoc(self.iframe);\r\n\t\t\tdoc.open();\r\n\t\t\tif (isDocumentDomain) {\r\n\t\t\t\tdoc.domain = document.domain;\r\n\t\t\t}\r\n\t\t\tdoc.write(_getInitHtml(themesPath, bodyClass, cssPath, cssData));\r\n\t\t\tdoc.close();\r\n\t\t\tself.win = self.iframe[0].contentWindow;\r\n\t\t\tself.doc = doc;\r\n\t\t\tvar cmd = _cmd(doc);\r\n\t\t\tself.afterChange(function(e) {\r\n\t\t\t\tcmd.selection();\r\n\t\t\t});\r\n\t\t\tif (_WEBKIT) {\r\n\t\t\t\tK(doc).click(function(e) {\r\n\t\t\t\t\tif (K(e.target).name === 'img') {\r\n\t\t\t\t\t\tcmd.selection(true);\r\n\t\t\t\t\t\tcmd.range.selectNode(e.target);\r\n\t\t\t\t\t\tcmd.select();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (_IE) {\r\n\t\t\t\tself._mousedownHandler = function() {\r\n\t\t\t\t\tvar newRange = cmd.range.cloneRange();\r\n\t\t\t\t\tnewRange.shrink();\r\n\t\t\t\t\tif (newRange.isControl()) {\r\n\t\t\t\t\t\tself.blur();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tK(document).mousedown(self._mousedownHandler);\r\n\t\t\t\tK(doc).keydown(function(e) {\r\n\t\t\t\t\tif (e.which == 8) {\r\n\t\t\t\t\t\tcmd.selection();\r\n\t\t\t\t\t\tvar rng = cmd.range;\r\n\t\t\t\t\t\tif (rng.isControl()) {\r\n\t\t\t\t\t\t\trng.collapse(true);\r\n\t\t\t\t\t\t\tK(rng.startContainer.childNodes[rng.startOffset]).remove();\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tself.cmd = cmd;\r\n\t\t\tself.html(_elementVal(self.srcElement));\r\n\t\t\tif (_IE) {\r\n\t\t\t\tdoc.body.disabled = true;\r\n\t\t\t\tdoc.body.contentEditable = true;\r\n\t\t\t\tdoc.body.removeAttribute('disabled');\r\n\t\t\t} else {\r\n\t\t\t\tdoc.designMode = 'on';\r\n\t\t\t}\r\n\t\t\tif (options.afterCreate) {\r\n\t\t\t\toptions.afterCreate.call(self);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isDocumentDomain) {\r\n\t\t\tself.iframe.bind('load', function(e) {\r\n\t\t\t\tself.iframe.unbind('load');\r\n\t\t\t\tif (_IE) {\r\n\t\t\t\t\tready();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsetTimeout(ready, 0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tself.div.append(self.iframe);\r\n\t\tself.div.append(self.textarea);\r\n\t\tself.srcElement.hide();\r\n\t\t!isDocumentDomain && ready();\r\n\t},\r\n\tsetWidth : function(val) {\r\n\t\tvar self = this;\r\n\t\tval = _addUnit(val);\r\n\t\tself.width = val;\r\n\t\tself.div.css('width', val);\r\n\t\treturn self;\r\n\t},\r\n\tsetHeight : function(val) {\r\n\t\tvar self = this;\r\n\t\tval = _addUnit(val);\r\n\t\tself.height = val;\r\n\t\tself.div.css('height', val);\r\n\t\tself.iframe.css('height', val);\r\n\t\tif ((_IE && _V < 8) || _QUIRKS) {\r\n\t\t\tval = _addUnit(_removeUnit(val) - 2);\r\n\t\t}\r\n\t\tself.textarea.css('height', val);\r\n\t\treturn self;\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this, doc = self.doc;\r\n\t\tK(doc.body).unbind();\r\n\t\tK(doc).unbind();\r\n\t\tK(self.win).unbind();\r\n\t\tif (self._mousedownHandler) {\r\n\t\t\tK(document).unbind('mousedown', self._mousedownHandler);\r\n\t\t}\r\n\t\t_elementVal(self.srcElement, self.html());\r\n\t\tself.srcElement.show();\r\n\t\tself.iframe.unbind();\r\n\t\tself.textarea.unbind();\r\n\t\tKEdit.parent.remove.call(self);\r\n\t},\r\n\thtml : function(val, isFull) {\r\n\t\tvar self = this, doc = self.doc;\r\n\t\tif (self.designMode) {\r\n\t\t\tvar body = doc.body;\r\n\t\t\tif (val === undefined) {\r\n\t\t\t\tif (isFull) {\r\n\t\t\t\t\tval = '<!doctype html><html>' + body.parentNode.innerHTML + '</html>';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tval = body.innerHTML;\r\n\t\t\t\t}\r\n\t\t\t\tif (self.beforeGetHtml) {\r\n\t\t\t\t\tval = self.beforeGetHtml(val);\r\n\t\t\t\t}\r\n\t\t\t\tif (_GECKO && val == '<br />') {\r\n\t\t\t\t\tval = '';\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t}\r\n\t\t\tif (self.beforeSetHtml) {\r\n\t\t\t\tval = self.beforeSetHtml(val);\r\n\t\t\t}\r\n\t\t\tif (_IE && _V >= 9) {\r\n\t\t\t\tval = val.replace(/(<.*?checked=\")checked(\".*>)/ig, '$1$2');\r\n\t\t\t}\r\n\t\t\tK(body).html(val);\r\n\t\t\tif (self.afterSetHtml) {\r\n\t\t\t\tself.afterSetHtml();\r\n\t\t\t}\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tif (val === undefined) {\r\n\t\t\treturn self.textarea.val();\r\n\t\t}\r\n\t\tself.textarea.val(val);\r\n\t\treturn self;\r\n\t},\r\n\tdesign : function(bool) {\r\n\t\tvar self = this, val;\r\n\t\tif (bool === undefined ? !self.designMode : bool) {\r\n\t\t\tif (!self.designMode) {\r\n\t\t\t\tval = self.html();\r\n\t\t\t\tself.designMode = true;\r\n\t\t\t\tself.textarea.hide();\r\n\t\t\t\tself.html(val);\r\n\t\t\t\tvar iframe = self.iframe;\r\n\t\t\t\tvar height = _removeUnit(self.height);\r\n\t\t\t\tiframe.height(height - 2);\r\n\t\t\t\tiframe.show();\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tiframe.height(height);\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (self.designMode) {\r\n\t\t\t\tval = self.html();\r\n\t\t\t\tself.designMode = false;\r\n\t\t\t\tself.html(val);\r\n\t\t\t\tself.iframe.hide();\r\n\t\t\t\tself.textarea.show();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn self.focus();\r\n\t},\r\n\tfocus : function() {\r\n\t\tvar self = this;\r\n\t\tself.designMode ? self.win.focus() : self.textarea[0].focus();\r\n\t\treturn self;\r\n\t},\r\n\tblur : function() {\r\n\t\tvar self = this;\r\n\t\tif (_IE) {\r\n\t\t\tvar input = K('<input type=\"text\" style=\"float:left;width:0;height:0;padding:0;margin:0;border:0;\" value=\"\" />', self.div);\r\n\t\t\tself.div.append(input);\r\n\t\t\tinput[0].focus();\r\n\t\t\tinput.remove();\r\n\t\t} else {\r\n\t\t\tself.designMode ? self.win.blur() : self.textarea[0].blur();\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tafterChange : function(fn) {\r\n\t\tvar self = this, doc = self.doc, body = doc.body;\r\n\t\tK(doc).keyup(function(e) {\r\n\t\t\tif (!e.ctrlKey && !e.altKey && _CHANGE_KEY_MAP[e.which]) {\r\n\t\t\t\tfn(e);\r\n\t\t\t}\r\n\t\t});\r\n\t\tK(doc).mouseup(fn).contextmenu(fn);\r\n\t\tK(self.win).blur(fn);\r\n\t\tfunction timeoutHandler(e) {\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tfn(e);\r\n\t\t\t}, 1);\r\n\t\t}\r\n\t\tK(body).bind('paste', timeoutHandler);\r\n\t\tK(body).bind('cut', timeoutHandler);\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _edit(options) {\r\n\treturn new KEdit(options);\r\n}\r\nK.EditClass = KEdit;\r\nK.edit = _edit;\r\nK.iframeDoc = _iframeDoc;\r\n\n\r\nfunction _selectToolbar(name, fn) {\r\n\tvar self = this,\r\n\t\tknode = self.get(name);\r\n\tif (knode) {\r\n\t\tif (knode.hasClass('ke-disabled')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tfn(knode);\r\n\t}\r\n}\r\n\r\r\nfunction KToolbar(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KToolbar, KWidget, {\r\n\tinit : function(options) {\r\n\t\tvar self = this;\r\n\t\tKToolbar.parent.init.call(self, options);\r\n\t\tself.disableMode = _undef(options.disableMode, false);\r\n\t\tself.noDisableItemMap = _toMap(_undef(options.noDisableItems, []));\r\n\t\tself._itemMap = {};\r\n\t\tself.div.addClass('ke-toolbar').bind('contextmenu,mousedown,mousemove', function(e) {\r\n\t\t\te.preventDefault();\r\n\t\t}).attr('unselectable', 'on');\r\n\t\tfunction find(target) {\r\n\t\t\tvar knode = K(target);\r\n\t\t\tif (knode.hasClass('ke-outline')) {\r\n\t\t\t\treturn knode;\r\n\t\t\t}\r\n\t\t\tif (knode.hasClass('ke-toolbar-icon')) {\r\n\t\t\t\treturn knode.parent();\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction hover(e, method) {\r\n\t\t\tvar knode = find(e.target);\r\n\t\t\tif (knode) {\r\n\t\t\t\tif (knode.hasClass('ke-disabled')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (knode.hasClass('ke-selected')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tknode[method]('ke-on');\r\n\t\t\t}\r\n\t\t}\r\n\t\tself.div.mouseover(function(e) {\r\n\t\t\thover(e, 'addClass');\r\n\t\t})\r\n\t\t.mouseout(function(e) {\r\n\t\t\thover(e, 'removeClass');\r\n\t\t})\r\n\t\t.click(function(e) {\r\n\t\t\tvar knode = find(e.target);\r\n\t\t\tif (knode) {\r\n\t\t\t\tif (knode.hasClass('ke-disabled')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tself.options.click.call(this, e, knode.attr('data-name'));\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tget : function(name) {\r\n\t\tif (this._itemMap[name]) {\r\n\t\t\treturn this._itemMap[name];\r\n\t\t}\r\n\t\treturn (this._itemMap[name] = K('span.ke-icon-' + name, this.div).parent());\r\n\t},\r\n\tselect : function(name) {\r\n\t\t_selectToolbar.call(this, name, function(knode) {\r\n\t\t\tknode.addClass('ke-selected');\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\tunselect : function(name) {\r\n\t\t_selectToolbar.call(this, name, function(knode) {\r\n\t\t\tknode.removeClass('ke-selected').removeClass('ke-on');\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\tenable : function(name) {\r\n\t\tvar self = this,\r\n\t\t\tknode = name.get ? name : self.get(name);\r\n\t\tif (knode) {\r\n\t\t\tknode.removeClass('ke-disabled');\r\n\t\t\tknode.opacity(1);\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tdisable : function(name) {\r\n\t\tvar self = this,\r\n\t\t\tknode = name.get ? name : self.get(name);\r\n\t\tif (knode) {\r\n\t\t\tknode.removeClass('ke-selected').addClass('ke-disabled');\r\n\t\t\tknode.opacity(0.5);\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tdisableAll : function(bool, noDisableItems) {\r\n\t\tvar self = this, map = self.noDisableItemMap, item;\r\n\t\tif (noDisableItems) {\r\n\t\t\tmap = _toMap(noDisableItems);\r\n\t\t}\r\n\t\tif (bool === undefined ? !self.disableMode : bool) {\r\n\t\t\tK('span.ke-outline', self.div).each(function() {\r\n\t\t\t\tvar knode = K(this),\r\n\t\t\t\t\tname = knode[0].getAttribute('data-name', 2);\r\n\t\t\t\tif (!map[name]) {\r\n\t\t\t\t\tself.disable(knode);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tself.disableMode = true;\r\n\t\t} else {\r\n\t\t\tK('span.ke-outline', self.div).each(function() {\r\n\t\t\t\tvar knode = K(this),\r\n\t\t\t\t\tname = knode[0].getAttribute('data-name', 2);\r\n\t\t\t\tif (!map[name]) {\r\n\t\t\t\t\tself.enable(knode);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tself.disableMode = false;\r\n\t\t}\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _toolbar(options) {\r\n\treturn new KToolbar(options);\r\n}\r\nK.ToolbarClass = KToolbar;\r\nK.toolbar = _toolbar;\r\n\n\r\r\nfunction KMenu(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KMenu, KWidget, {\r\n\tinit : function(options) {\r\n\t\tvar self = this;\r\n\t\toptions.z = options.z || 811213;\r\n\t\tKMenu.parent.init.call(self, options);\r\n\t\tself.centerLineMode = _undef(options.centerLineMode, true);\r\n\t\tself.div.addClass('ke-menu').bind('click,mousedown', function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t}).attr('unselectable', 'on');\r\n\t},\r\n\taddItem : function(item) {\r\n\t\tvar self = this;\r\n\t\tif (item.title === '-') {\r\n\t\t\tself.div.append(K('<div class=\"ke-menu-separator\"></div>'));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar itemDiv = K('<div class=\"ke-menu-item\" unselectable=\"on\"></div>'),\r\n\t\t\tleftDiv = K('<div class=\"ke-inline-block ke-menu-item-left\"></div>'),\r\n\t\t\trightDiv = K('<div class=\"ke-inline-block ke-menu-item-right\"></div>'),\r\n\t\t\theight = _addUnit(item.height),\r\n\t\t\ticonClass = _undef(item.iconClass, '');\r\n\t\tself.div.append(itemDiv);\r\n\t\tif (height) {\r\n\t\t\titemDiv.css('height', height);\r\n\t\t\trightDiv.css('line-height', height);\r\n\t\t}\r\n\t\tvar centerDiv;\r\n\t\tif (self.centerLineMode) {\r\n\t\t\tcenterDiv = K('<div class=\"ke-inline-block ke-menu-item-center\"></div>');\r\n\t\t\tif (height) {\r\n\t\t\t\tcenterDiv.css('height', height);\r\n\t\t\t}\r\n\t\t}\r\n\t\titemDiv.mouseover(function(e) {\r\n\t\t\tK(this).addClass('ke-menu-item-on');\r\n\t\t\tif (centerDiv) {\r\n\t\t\t\tcenterDiv.addClass('ke-menu-item-center-on');\r\n\t\t\t}\r\n\t\t})\r\n\t\t.mouseout(function(e) {\r\n\t\t\tK(this).removeClass('ke-menu-item-on');\r\n\t\t\tif (centerDiv) {\r\n\t\t\t\tcenterDiv.removeClass('ke-menu-item-center-on');\r\n\t\t\t}\r\n\t\t})\r\n\t\t.click(function(e) {\r\n\t\t\titem.click.call(K(this));\r\n\t\t\te.stopPropagation();\r\n\t\t})\r\n\t\t.append(leftDiv);\r\n\t\tif (centerDiv) {\r\n\t\t\titemDiv.append(centerDiv);\r\n\t\t}\r\n\t\titemDiv.append(rightDiv);\r\n\t\tif (item.checked) {\r\n\t\t\ticonClass = 'ke-icon-checked';\r\n\t\t}\r\n\t\tif (iconClass !== '') {\r\n\t\t\tleftDiv.html('<span class=\"ke-inline-block ke-toolbar-icon ke-toolbar-icon-url ' + iconClass + '\"></span>');\r\n\t\t}\r\n\t\trightDiv.html(item.title);\r\n\t\treturn self;\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.options.beforeRemove) {\r\n\t\t\tself.options.beforeRemove.call(self);\r\n\t\t}\r\n\t\tK('.ke-menu-item', self.div[0]).unbind();\r\n\t\tKMenu.parent.remove.call(self);\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _menu(options) {\r\n\treturn new KMenu(options);\r\n}\r\nK.MenuClass = KMenu;\r\nK.menu = _menu;\r\n\n\r\r\nfunction KColorPicker(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KColorPicker, KWidget, {\r\n\tinit : function(options) {\r\n\t\tvar self = this;\r\n\t\toptions.z = options.z || 811213;\r\n\t\tKColorPicker.parent.init.call(self, options);\r\n\t\tvar colors = options.colors || [\r\n\t\t\t['#E53333', '#E56600', '#FF9900', '#64451D', '#DFC5A4', '#FFE500'],\r\n\t\t\t['#009900', '#006600', '#99BB00', '#B8D100', '#60D978', '#00D5FF'],\r\n\t\t\t['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'],\r\n\t\t\t['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000']\r\n\t\t];\r\n\t\tself.selectedColor = (options.selectedColor || '').toLowerCase();\r\n\t\tself._cells = [];\r\n\t\tself.div.addClass('ke-colorpicker').bind('click,mousedown', function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t}).attr('unselectable', 'on');\r\n\t\tvar table = self.doc.createElement('table');\r\n\t\tself.div.append(table);\r\n\t\ttable.className = 'ke-colorpicker-table';\r\n\t\ttable.cellPadding = 0;\r\n\t\ttable.cellSpacing = 0;\r\n\t\ttable.border = 0;\r\n\t\tvar row = table.insertRow(0), cell = row.insertCell(0);\r\n\t\tcell.colSpan = colors[0].length;\r\n\t\tself._addAttr(cell, '', 'ke-colorpicker-cell-top');\r\n\t\tfor (var i = 0; i < colors.length; i++) {\r\n\t\t\trow = table.insertRow(i + 1);\r\n\t\t\tfor (var j = 0; j < colors[i].length; j++) {\r\n\t\t\t\tcell = row.insertCell(j);\r\n\t\t\t\tself._addAttr(cell, colors[i][j], 'ke-colorpicker-cell');\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t_addAttr : function(cell, color, cls) {\r\n\t\tvar self = this;\r\n\t\tcell = K(cell).addClass(cls);\r\n\t\tif (self.selectedColor === color.toLowerCase()) {\r\n\t\t\tcell.addClass('ke-colorpicker-cell-selected');\r\n\t\t}\r\n\t\tcell.attr('title', color || self.options.noColor);\r\n\t\tcell.mouseover(function(e) {\r\n\t\t\tK(this).addClass('ke-colorpicker-cell-on');\r\n\t\t});\r\n\t\tcell.mouseout(function(e) {\r\n\t\t\tK(this).removeClass('ke-colorpicker-cell-on');\r\n\t\t});\r\n\t\tcell.click(function(e) {\r\n\t\t\te.stop();\r\n\t\t\tself.options.click.call(K(this), color);\r\n\t\t});\r\n\t\tif (color) {\r\n\t\t\tcell.append(K('<div class=\"ke-colorpicker-cell-color\" unselectable=\"on\"></div>').css('background-color', color));\r\n\t\t} else {\r\n\t\t\tcell.html(self.options.noColor);\r\n\t\t}\r\n\t\tK(cell).attr('unselectable', 'on');\r\n\t\tself._cells.push(cell);\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this;\r\n\t\t_each(self._cells, function() {\r\n\t\t\tthis.unbind();\r\n\t\t});\r\n\t\tKColorPicker.parent.remove.call(self);\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _colorpicker(options) {\r\n\treturn new KColorPicker(options);\r\n}\r\nK.ColorPickerClass = KColorPicker;\r\nK.colorpicker = _colorpicker;\r\n\n\r\nfunction KUploadButton(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KUploadButton, {\r\n\tinit : function(options) {\r\n\t\tvar self = this,\r\n\t\t\tbutton = K(options.button),\r\n\t\t\tfieldName = options.fieldName || 'file',\r\n\t\t\turl = options.url || '',\r\n\t\t\ttitle = button.val(),\r\n\t\t\textraParams = options.extraParams || {},\r\n\t\t\tcls = button[0].className || '',\r\n\t\t\ttarget = options.target || 'kindeditor_upload_iframe_' + new Date().getTime();\r\n\t\toptions.afterError = options.afterError || function(str) {\r\n\t\t\talert(str);\r\n\t\t};\r\n\t\tvar hiddenElements = [];\r\n\t\tfor(var k in extraParams){\r\n\t\t\thiddenElements.push('<input type=\"hidden\" name=\"' + k + '\" value=\"' + extraParams[k] + '\" />');\r\n\t\t}\r\n\t\tvar html = [\r\n\t\t\t'<div class=\"ke-inline-block ' + cls + '\">',\r\n\t\t\t(options.target ? '' : '<iframe name=\"' + target + '\" style=\"display:none;\"></iframe>'),\r\n\t\t\t(options.form ? '<div class=\"ke-upload-area\">' : '<form class=\"ke-upload-area ke-form\" method=\"post\" enctype=\"multipart/form-data\" target=\"' + target + '\" action=\"' + url + '\">'),\r\n\t\t\t'<span class=\"ke-button-common\">',\r\n\t\t\thiddenElements.join(''),\r\n\t\t\t'<input type=\"button\" class=\"ke-button-common ke-button\" value=\"' + title + '\" />',\r\n\t\t\t'</span>',\r\n\t\t\t'<input type=\"file\" class=\"ke-upload-file\" name=\"' + fieldName + '\" tabindex=\"-1\" />',\r\n\t\t\t(options.form ? '</div>' : '</form>'),\r\n\t\t\t'</div>'].join('');\r\n\t\tvar div = K(html, button.doc);\r\n\t\tbutton.hide();\r\n\t\tbutton.before(div);\r\n\t\tself.div = div;\r\n\t\tself.button = button;\r\n\t\tself.iframe = options.target ? K('iframe[name=\"' + target + '\"]') : K('iframe', div);\r\n\t\tself.form = options.form ? K(options.form) : K('form', div);\r\n\t\tself.fileBox = K('.ke-upload-file', div);\r\n\t\tvar width = options.width || K('.ke-button-common', div).width();\r\n\t\tK('.ke-upload-area', div).width(width);\r\n\t\tself.options = options;\r\n\t},\r\n\tsubmit : function() {\r\n\t\tvar self = this,\r\n\t\t\tiframe = self.iframe;\r\n\t\tiframe.bind('load', function() {\r\n\t\t\tiframe.unbind();\r\n\t\t\tvar tempForm = document.createElement('form');\r\n\t\t\tself.fileBox.before(tempForm);\r\n\t\t\tK(tempForm).append(self.fileBox);\r\n\t\t\ttempForm.reset();\r\n\t\t\tK(tempForm).remove(true);\r\n\t\t\tvar doc = K.iframeDoc(iframe),\r\n\t\t\t\tpre = doc.getElementsByTagName('pre')[0],\r\n\t\t\t\tstr = '', data;\r\n\t\t\tif (pre) {\r\n\t\t\t\tstr = pre.innerHTML;\r\n\t\t\t} else {\r\n\t\t\t\tstr = doc.body.innerHTML;\r\n\t\t\t}\r\n\t\t\tstr = _unescape(str);\r\n\t\t\tiframe[0].src = 'javascript:false';\r\n\t\t\ttry {\r\n\t\t\t\tdata = K.json(str);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tself.options.afterError.call(self, '<!doctype html><html>' + doc.body.parentNode.innerHTML + '</html>');\r\n\t\t\t}\r\n\t\t\tif (data) {\r\n\t\t\t\tself.options.afterUpload.call(self, data);\r\n\t\t\t}\r\n\t\t});\r\n\t\tself.form[0].submit();\r\n\t\treturn self;\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.fileBox) {\r\n\t\t\tself.fileBox.unbind();\r\n\t\t}\r\n\t\tself.iframe.remove();\r\n\t\tself.div.remove();\r\n\t\tself.button.show();\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _uploadbutton(options) {\r\n\treturn new KUploadButton(options);\r\n}\r\nK.UploadButtonClass = KUploadButton;\r\nK.uploadbutton = _uploadbutton;\r\n\n\r\nfunction _createButton(arg) {\r\n\targ = arg || {};\r\n\tvar name = arg.name || '',\r\n\t\tspan = K('<span class=\"ke-button-common ke-button-outer\" title=\"' + name + '\"></span>'),\r\n\t\tbtn = K('<input class=\"ke-button-common ke-button\" type=\"button\" value=\"' + name + '\" />');\r\n\tif (arg.click) {\r\n\t\tbtn.click(arg.click);\r\n\t}\r\n\tspan.append(btn);\r\n\treturn span;\r\n}\r\n\r\r\nfunction KDialog(options) {\r\n\tthis.init(options);\r\n}\r\n_extend(KDialog, KWidget, {\r\n\tinit : function(options) {\r\n\t\tvar self = this;\r\n\t\tvar shadowMode = _undef(options.shadowMode, true);\r\n\t\toptions.z = options.z || 811213;\r\n\t\toptions.shadowMode = false;\r\n\t\toptions.autoScroll = _undef(options.autoScroll, true);\r\n\t\tKDialog.parent.init.call(self, options);\r\n\t\tvar title = options.title,\r\n\t\t\tbody = K(options.body, self.doc),\r\n\t\t\tpreviewBtn = options.previewBtn,\r\n\t\t\tyesBtn = options.yesBtn,\r\n\t\t\tnoBtn = options.noBtn,\r\n\t\t\tcloseBtn = options.closeBtn,\r\n\t\t\tshowMask = _undef(options.showMask, true);\r\n\t\tself.div.addClass('ke-dialog').bind('click,mousedown', function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\t\tvar contentDiv = K('<div class=\"ke-dialog-content\"></div>').appendTo(self.div);\r\n\t\tif (_IE && _V < 7) {\r\n\t\t\tself.iframeMask = K('<iframe src=\"about:blank\" class=\"ke-dialog-shadow\"></iframe>').appendTo(self.div);\r\n\t\t} else if (shadowMode) {\r\n\t\t\tK('<div class=\"ke-dialog-shadow\"></div>').appendTo(self.div);\r\n\t\t}\r\n\t\tvar headerDiv = K('<div class=\"ke-dialog-header\"></div>');\r\n\t\tcontentDiv.append(headerDiv);\r\n\t\theaderDiv.html(title);\r\n\t\tself.closeIcon = K('<span class=\"ke-dialog-icon-close\" title=\"' + closeBtn.name + '\"></span>').click(closeBtn.click);\r\n\t\theaderDiv.append(self.closeIcon);\r\n\t\tself.draggable({\r\n\t\t\tclickEl : headerDiv,\r\n\t\t\tbeforeDrag : options.beforeDrag\r\n\t\t});\r\n\t\tvar bodyDiv = K('<div class=\"ke-dialog-body\"></div>');\r\n\t\tcontentDiv.append(bodyDiv);\r\n\t\tbodyDiv.append(body);\r\n\t\tvar footerDiv = K('<div class=\"ke-dialog-footer\"></div>');\r\n\t\tif (previewBtn || yesBtn || noBtn) {\r\n\t\t\tcontentDiv.append(footerDiv);\r\n\t\t}\r\n\t\t_each([\r\n\t\t\t{ btn : previewBtn, name : 'preview' },\r\n\t\t\t{ btn : yesBtn, name : 'yes' },\r\n\t\t\t{ btn : noBtn, name : 'no' }\r\n\t\t], function() {\r\n\t\t\tif (this.btn) {\r\n\t\t\t\tvar button = _createButton(this.btn);\r\n\t\t\t\tbutton.addClass('ke-dialog-' + this.name);\r\n\t\t\t\tfooterDiv.append(button);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (self.height) {\r\n\t\t\tbodyDiv.height(_removeUnit(self.height) - headerDiv.height() - footerDiv.height());\r\n\t\t}\r\n\t\tself.div.width(self.div.width());\r\n\t\tself.div.height(self.div.height());\r\n\t\tself.mask = null;\r\n\t\tif (showMask) {\r\n\t\t\tvar docEl = _docElement(self.doc),\r\n\t\t\t\tdocWidth = Math.max(docEl.scrollWidth, docEl.clientWidth),\r\n\t\t\t\tdocHeight = Math.max(docEl.scrollHeight, docEl.clientHeight);\r\n\t\t\tself.mask = _widget({\r\n\t\t\t\tx : 0,\r\n\t\t\t\ty : 0,\r\n\t\t\t\tz : self.z - 1,\r\n\t\t\t\tcls : 'ke-dialog-mask',\r\n\t\t\t\twidth : docWidth,\r\n\t\t\t\theight : docHeight\r\n\t\t\t});\r\n\t\t}\r\n\t\tself.autoPos(self.div.width(), self.div.height());\r\n\t\tself.footerDiv = footerDiv;\r\n\t\tself.bodyDiv = bodyDiv;\r\n\t\tself.headerDiv = headerDiv;\r\n\t\tself.isLoading = false;\r\n\t},\r\n\tsetMaskIndex : function(z) {\r\n\t\tvar self = this;\r\n\t\tself.mask.div.css('z-index', z);\r\n\t},\r\n\tshowLoading : function(msg) {\r\n\t\tmsg = _undef(msg, '');\r\n\t\tvar self = this, body = self.bodyDiv;\r\n\t\tself.loading = K('<div class=\"ke-dialog-loading\"><div class=\"ke-inline-block ke-dialog-loading-content\" style=\"margin-top:' + Math.round(body.height() / 3) + 'px;\">' + msg + '</div></div>')\r\n\t\t\t.width(body.width()).height(body.height())\r\n\t\t\t.css('top', self.headerDiv.height() + 'px');\r\n\t\tbody.css('visibility', 'hidden').after(self.loading);\r\n\t\tself.isLoading = true;\r\n\t\treturn self;\r\n\t},\r\n\thideLoading : function() {\r\n\t\tthis.loading && this.loading.remove();\r\n\t\tthis.bodyDiv.css('visibility', 'visible');\r\n\t\tthis.isLoading = false;\r\n\t\treturn this;\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.options.beforeRemove) {\r\n\t\t\tself.options.beforeRemove.call(self);\r\n\t\t}\r\n\t\tself.mask && self.mask.remove();\r\n\t\tself.iframeMask && self.iframeMask.remove();\r\n\t\tself.closeIcon.unbind();\r\n\t\tK('input', self.div).unbind();\r\n\t\tK('button', self.div).unbind();\r\n\t\tself.footerDiv.unbind();\r\n\t\tself.bodyDiv.unbind();\r\n\t\tself.headerDiv.unbind();\r\n\t\tK('iframe', self.div).each(function() {\r\n\t\t\tK(this).remove();\r\n\t\t});\r\n\t\tKDialog.parent.remove.call(self);\r\n\t\treturn self;\r\n\t}\r\n});\r\nfunction _dialog(options) {\r\n\treturn new KDialog(options);\r\n}\r\nK.DialogClass = KDialog;\r\nK.dialog = _dialog;\r\n\n\r\nfunction _tabs(options) {\r\n\tvar self = _widget(options),\r\n\t\tremove = self.remove,\r\n\t\tafterSelect = options.afterSelect,\r\n\t\tdiv = self.div,\r\n\t\tliList = [];\r\n\tdiv.addClass('ke-tabs')\r\n\t\t.bind('contextmenu,mousedown,mousemove', function(e) {\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\tvar ul = K('<ul class=\"ke-tabs-ul ke-clearfix\"></ul>');\r\n\tdiv.append(ul);\r\n\tself.add = function(tab) {\r\n\t\tvar li = K('<li class=\"ke-tabs-li\">' + tab.title + '</li>');\r\n\t\tli.data('tab', tab);\r\n\t\tliList.push(li);\r\n\t\tul.append(li);\r\n\t};\r\n\tself.selectedIndex = 0;\r\n\tself.select = function(index) {\r\n\t\tself.selectedIndex = index;\r\n\t\t_each(liList, function(i, li) {\r\n\t\t\tli.unbind();\r\n\t\t\tif (i === index) {\r\n\t\t\t\tli.addClass('ke-tabs-li-selected');\r\n\t\t\t\tK(li.data('tab').panel).show('');\r\n\t\t\t} else {\r\n\t\t\t\tli.removeClass('ke-tabs-li-selected').removeClass('ke-tabs-li-on')\r\n\t\t\t\t.mouseover(function() {\r\n\t\t\t\t\tK(this).addClass('ke-tabs-li-on');\r\n\t\t\t\t})\r\n\t\t\t\t.mouseout(function() {\r\n\t\t\t\t\tK(this).removeClass('ke-tabs-li-on');\r\n\t\t\t\t})\r\n\t\t\t\t.click(function() {\r\n\t\t\t\t\tself.select(i);\r\n\t\t\t\t});\r\n\t\t\t\tK(li.data('tab').panel).hide();\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (afterSelect) {\r\n\t\t\tafterSelect.call(self, index);\r\n\t\t}\r\n\t};\r\n\tself.remove = function() {\r\n\t\t_each(liList, function() {\r\n\t\t\tthis.remove();\r\n\t\t});\r\n\t\tul.remove();\r\n\t\tremove.call(self);\r\n\t};\r\n\treturn self;\r\n}\r\nK.tabs = _tabs;\r\n\n\r\nfunction _loadScript(url, fn) {\r\n\tvar head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement),\r\n\t\tscript = document.createElement('script');\r\n\thead.appendChild(script);\r\n\tscript.src = url;\r\n\tscript.charset = 'utf-8';\r\n\tscript.onload = script.onreadystatechange = function() {\r\n\t\tif (!this.readyState || this.readyState === 'loaded') {\r\n\t\t\tif (fn) {\r\n\t\t\t\tfn();\r\n\t\t\t}\r\n\t\t\tscript.onload = script.onreadystatechange = null;\r\n\t\t\thead.removeChild(script);\r\n\t\t}\r\n\t};\r\n}\r\n\r\r\nfunction _chopQuery(url) {\r\n\tvar index = url.indexOf('?');\r\n\treturn index > 0 ? url.substr(0, index) : url;\r\n}\r\nfunction _loadStyle(url) {\r\n\tvar head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement),\r\n\t\tlink = document.createElement('link'),\r\n\t\tabsoluteUrl = _chopQuery(_formatUrl(url, 'absolute'));\r\n\tvar links = K('link[rel=\"stylesheet\"]', head);\r\n\tfor (var i = 0, len = links.length; i < len; i++) {\r\n\t\tif (_chopQuery(_formatUrl(links[i].href, 'absolute')) === absoluteUrl) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\thead.appendChild(link);\r\n\tlink.href = url;\r\n\tlink.rel = 'stylesheet';\r\n}\r\nfunction _ajax(url, fn, method, param, dataType) {\r\n\tmethod = method || 'GET';\r\n\tdataType = dataType || 'json';\r\n\tvar xhr = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');\r\n\txhr.open(method, url, true);\r\n\txhr.onreadystatechange = function () {\r\n\t\tif (xhr.readyState == 4 && xhr.status == 200) {\r\n\t\t\tif (fn) {\r\n\t\t\t\tvar data = _trim(xhr.responseText);\r\n\t\t\t\tif (dataType == 'json') {\r\n\t\t\t\t\tdata = _json(data);\r\n\t\t\t\t}\r\n\t\t\t\tfn(data);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tif (method == 'POST') {\r\n\t\tvar params = [];\r\n\t\t_each(param, function(key, val) {\r\n\t\t\tparams.push(encodeURIComponent(key) + '=' + encodeURIComponent(val));\r\n\t\t});\r\n\t\ttry {\r\n\t\t\txhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\r\n\t\t} catch (e) {}\r\n\t\txhr.send(params.join('&'));\r\n\t} else {\r\n\t\txhr.send(null);\r\n\t}\r\n}\r\nK.loadScript = _loadScript;\r\nK.loadStyle = _loadStyle;\r\nK.ajax = _ajax;\r\n\n\r\nvar _plugins = {};\r\nfunction _plugin(name, fn) {\r\n\tif (name === undefined) {\r\n\t\treturn _plugins;\r\n\t}\r\n\tif (!fn) {\r\n\t\treturn _plugins[name];\r\n\t}\r\n\t_plugins[name] = fn;\r\n}\r\nvar _language = {};\r\nfunction _parseLangKey(key) {\r\n\tvar match, ns = 'core';\r\n\tif ((match = /^(\\w+)\\.(\\w+)$/.exec(key))) {\r\n\t\tns = match[1];\r\n\t\tkey = match[2];\r\n\t}\r\n\treturn { ns : ns, key : key };\r\n}\r\nfunction _lang(mixed, langType) {\r\n\tlangType = langType === undefined ? K.options.langType : langType;\r\n\tif (typeof mixed === 'string') {\r\n\t\tif (!_language[langType]) {\r\n\t\t\treturn 'no language';\r\n\t\t}\r\n\t\tvar pos = mixed.length - 1;\r\n\t\tif (mixed.substr(pos) === '.') {\r\n\t\t\treturn _language[langType][mixed.substr(0, pos)];\r\n\t\t}\r\n\t\tvar obj = _parseLangKey(mixed);\r\n\t\treturn _language[langType][obj.ns][obj.key];\r\n\t}\r\n\t_each(mixed, function(key, val) {\r\n\t\tvar obj = _parseLangKey(key);\r\n\t\tif (!_language[langType]) {\r\n\t\t\t_language[langType] = {};\r\n\t\t}\r\n\t\tif (!_language[langType][obj.ns]) {\r\n\t\t\t_language[langType][obj.ns] = {};\r\n\t\t}\r\n\t\t_language[langType][obj.ns][obj.key] = val;\r\n\t});\r\n}\r\n\r\r\nfunction _getImageFromRange(range, fn) {\r\n\tif (range.collapsed) {\r\n\t\treturn;\r\n\t}\r\n\trange = range.cloneRange().up();\r\n\tvar sc = range.startContainer, so = range.startOffset;\r\n\tif (!_WEBKIT && !range.isControl()) {\r\n\t\treturn;\r\n\t}\r\n\tvar img = K(sc.childNodes[so]);\r\n\tif (!img || img.name != 'img') {\r\n\t\treturn;\r\n\t}\r\n\tif (fn(img)) {\r\n\t\treturn img;\r\n\t}\r\n}\r\nfunction _bindContextmenuEvent() {\r\n\tvar self = this, doc = self.edit.doc;\r\n\tK(doc).contextmenu(function(e) {\r\n\t\tif (self.menu) {\r\n\t\t\tself.hideMenu();\r\n\t\t}\r\n\t\tif (!self.useContextmenu) {\r\n\t\t\te.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (self._contextmenus.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar maxWidth = 0, items = [];\r\n\t\t_each(self._contextmenus, function() {\r\n\t\t\tif (this.title == '-') {\r\n\t\t\t\titems.push(this);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (this.cond && this.cond()) {\r\n\t\t\t\titems.push(this);\r\n\t\t\t\tif (this.width && this.width > maxWidth) {\r\n\t\t\t\t\tmaxWidth = this.width;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\twhile (items.length > 0 && items[0].title == '-') {\r\n\t\t\titems.shift();\r\n\t\t}\r\n\t\twhile (items.length > 0 && items[items.length - 1].title == '-') {\r\n\t\t\titems.pop();\r\n\t\t}\r\n\t\tvar prevItem = null;\r\n\t\t_each(items, function(i) {\r\n\t\t\tif (this.title == '-' && prevItem.title == '-') {\r\n\t\t\t\tdelete items[i];\r\n\t\t\t}\r\n\t\t\tprevItem = this;\r\n\t\t});\r\n\t\tif (items.length > 0) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar pos = K(self.edit.iframe).pos(),\r\n\t\t\t\tmenu = _menu({\r\n\t\t\t\t\tx : pos.x + e.clientX,\r\n\t\t\t\t\ty : pos.y + e.clientY,\r\n\t\t\t\t\twidth : maxWidth,\r\n\t\t\t\t\tcss : { visibility: 'hidden' },\r\n\t\t\t\t\tshadowMode : self.shadowMode\r\n\t\t\t\t});\r\n\t\t\t_each(items, function() {\r\n\t\t\t\tif (this.title) {\r\n\t\t\t\t\tmenu.addItem(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar docEl = _docElement(menu.doc),\r\n\t\t\t\tmenuHeight = menu.div.height();\r\n\t\t\tif (e.clientY + menuHeight >= docEl.clientHeight - 100) {\r\n\t\t\t\tmenu.pos(menu.x, _removeUnit(menu.y) - menuHeight);\r\n\t\t\t}\r\n\t\t\tmenu.div.css('visibility', 'visible');\r\n\t\t\tself.menu = menu;\r\n\t\t}\r\n\t});\r\n}\r\nfunction _bindNewlineEvent() {\r\n\tvar self = this, doc = self.edit.doc, newlineTag = self.newlineTag;\r\n\tif (_IE && newlineTag !== 'br') {\r\n\t\treturn;\r\n\t}\r\n\tif (_GECKO && _V < 3 && newlineTag !== 'p') {\r\n\t\treturn;\r\n\t}\r\n\tif (_OPERA && _V < 9) {\r\n\t\treturn;\r\n\t}\r\n\tvar brSkipTagMap = _toMap('h1,h2,h3,h4,h5,h6,pre,li'),\r\n\t\tpSkipTagMap = _toMap('p,h1,h2,h3,h4,h5,h6,pre,li,blockquote');\r\n\tfunction getAncestorTagName(range) {\r\n\t\tvar ancestor = K(range.commonAncestor());\r\n\t\twhile (ancestor) {\r\n\t\t\tif (ancestor.type == 1 && !ancestor.isStyle()) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tancestor = ancestor.parent();\r\n\t\t}\r\n\t\treturn ancestor.name;\r\n\t}\r\n\tK(doc).keydown(function(e) {\r\n\t\tif (e.which != 13 || e.shiftKey || e.ctrlKey || e.altKey) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tself.cmd.selection();\r\n\t\tvar tagName = getAncestorTagName(self.cmd.range);\r\n\t\tif (tagName == 'marquee' || tagName == 'select') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (newlineTag === 'br' && !brSkipTagMap[tagName]) {\r\n\t\t\te.preventDefault();\r\n\t\t\tself.insertHtml('<br />' + (_IE && _V < 9 ? '' : '\\u200B'));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!pSkipTagMap[tagName]) {\r\n\t\t\t_nativeCommand(doc, 'formatblock', '<p>');\r\n\t\t}\r\n\t});\r\n\tK(doc).keyup(function(e) {\r\n\t\tif (e.which != 13 || e.shiftKey || e.ctrlKey || e.altKey) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (newlineTag == 'br') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (_GECKO) {\r\n\t\t\tvar root = self.cmd.commonAncestor('p');\r\n\t\t\tvar a = self.cmd.commonAncestor('a');\r\n\t\t\tif (a && a.text() == '') {\r\n\t\t\t\ta.remove(true);\r\n\t\t\t\tself.cmd.range.selectNodeContents(root[0]).collapse(true);\r\n\t\t\t\tself.cmd.select();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tself.cmd.selection();\r\n\t\tvar tagName = getAncestorTagName(self.cmd.range);\r\n\t\tif (tagName == 'marquee' || tagName == 'select') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!pSkipTagMap[tagName]) {\r\n\t\t\t_nativeCommand(doc, 'formatblock', '<p>');\r\n\t\t}\r\n\t\tvar div = self.cmd.commonAncestor('div');\r\n\t\tif (div) {\r\n\t\t\tvar p = K('<p></p>'),\r\n\t\t\t\tchild = div[0].firstChild;\r\n\t\t\twhile (child) {\r\n\t\t\t\tvar next = child.nextSibling;\r\n\t\t\t\tp.append(child);\r\n\t\t\t\tchild = next;\r\n\t\t\t}\r\n\t\t\tdiv.before(p);\r\n\t\t\tdiv.remove();\r\n\t\t\tself.cmd.range.selectNodeContents(p[0]);\r\n\t\t\tself.cmd.select();\r\n\t\t}\r\n\t});\r\n}\r\nfunction _bindTabEvent() {\r\n\tvar self = this, doc = self.edit.doc;\r\n\tK(doc).keydown(function(e) {\r\n\t\tif (e.which == 9) {\r\n\t\t\te.preventDefault();\r\n\t\t\tif (self.afterTab) {\r\n\t\t\t\tself.afterTab.call(self, e);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar cmd = self.cmd, range = cmd.range;\r\n\t\t\trange.shrink();\r\n\t\t\tif (range.collapsed && range.startContainer.nodeType == 1) {\r\n\t\t\t\trange.insertNode(K('@ ', doc)[0]);\r\n\t\t\t\tcmd.select();\r\n\t\t\t}\r\n\t\t\tself.insertHtml(' ');\r\n\t\t}\r\n\t});\r\n}\r\nfunction _bindFocusEvent() {\r\n\tvar self = this;\r\n\tK(self.edit.textarea[0], self.edit.win).focus(function(e) {\r\n\t\tif (self.afterFocus) {\r\n\t\t\tself.afterFocus.call(self, e);\r\n\t\t}\r\n\t}).blur(function(e) {\r\n\t\tif (self.afterBlur) {\r\n\t\t\tself.afterBlur.call(self, e);\r\n\t\t}\r\n\t});\r\n}\r\nfunction _removeBookmarkTag(html) {\r\n\treturn _trim(html.replace(/<span [^>]*id=\"?__kindeditor_bookmark_\\w+_\\d+__\"?[^>]*><\\/span>/ig, ''));\r\n}\r\nfunction _removeTempTag(html) {\r\n\treturn html.replace(/<div[^>]+class=\"?__kindeditor_paste__\"?[^>]*>[\\s\\S]*?<\\/div>/ig, '');\r\n}\r\nfunction _addBookmarkToStack(stack, bookmark) {\r\n\tif (stack.length === 0) {\r\n\t\tstack.push(bookmark);\r\n\t\treturn;\r\n\t}\r\n\tvar prev = stack[stack.length - 1];\r\n\tif (_removeBookmarkTag(bookmark.html) !== _removeBookmarkTag(prev.html)) {\r\n\t\tstack.push(bookmark);\r\n\t}\r\n}\r\n\r\r\r\nfunction _undoToRedo(fromStack, toStack) {\r\n\tvar self = this, edit = self.edit,\r\n\t\tbody = edit.doc.body,\r\n\t\trange, bookmark;\r\n\tif (fromStack.length === 0) {\r\n\t\treturn self;\r\n\t}\r\n\tif (edit.designMode) {\r\n\t\trange = self.cmd.range;\r\n\t\tbookmark = range.createBookmark(true);\r\n\t\tbookmark.html = body.innerHTML;\r\n\t} else {\r\n\t\tbookmark = {\r\n\t\t\thtml : body.innerHTML\r\n\t\t};\r\n\t}\r\n\t_addBookmarkToStack(toStack, bookmark);\r\n\tvar prev = fromStack.pop();\r\n\tif (_removeBookmarkTag(bookmark.html) === _removeBookmarkTag(prev.html) && fromStack.length > 0) {\r\n\t\tprev = fromStack.pop();\r\n\t}\r\n\tif (edit.designMode) {\r\n\t\tedit.html(prev.html);\r\n\t\tif (prev.start) {\r\n\t\t\trange.moveToBookmark(prev);\r\n\t\t\tself.select();\r\n\t\t}\r\n\t} else {\r\n\t\tK(body).html(_removeBookmarkTag(prev.html));\r\n\t}\r\n\treturn self;\r\n}\r\nfunction KEditor(options) {\r\n\tvar self = this;\r\n\tself.options = {};\r\n\tfunction setOption(key, val) {\r\n\t\tif (KEditor.prototype[key] === undefined) {\r\n\t\t\tself[key] = val;\r\n\t\t}\r\n\t\tself.options[key] = val;\r\n\t}\r\n\t_each(options, function(key, val) {\r\n\t\tsetOption(key, options[key]);\r\n\t});\r\n\t_each(K.options, function(key, val) {\r\n\t\tif (self[key] === undefined) {\r\n\t\t\tsetOption(key, val);\r\n\t\t}\r\n\t});\r\n\tvar se = K(self.srcElement || '<textarea/>');\r\n\tif (!self.width) {\r\n\t\tself.width = se[0].style.width || se.width();\r\n\t}\r\n\tif (!self.height) {\r\n\t\tself.height = se[0].style.height || se.height();\r\n\t}\r\n\tsetOption('width', _undef(self.width, self.minWidth));\r\n\tsetOption('height', _undef(self.height, self.minHeight));\r\n\tsetOption('width', _addUnit(self.width));\r\n\tsetOption('height', _addUnit(self.height));\r\n\tif (_MOBILE && (!_IOS || _V < 534)) {\r\n\t\tself.designMode = false;\r\n\t}\r\n\tself.srcElement = se;\r\n\tself.initContent = '';\r\n\tself.plugin = {};\r\n\tself.isCreated = false;\r\n\tself._handlers = {};\r\n\tself._contextmenus = [];\r\n\tself._undoStack = [];\r\n\tself._redoStack = [];\r\n\tself._firstAddBookmark = true;\r\n\tself.menu = self.contextmenu = null;\r\n\tself.dialogs = [];\r\n}\r\nKEditor.prototype = {\r\n\tlang : function(mixed) {\r\n\t\treturn _lang(mixed, this.langType);\r\n\t},\r\n\tloadPlugin : function(name, fn) {\r\n\t\tvar self = this;\r\n\t\tvar _pluginStatus = this._pluginStatus;\r\n\t\tif (!_pluginStatus) {\r\n\t\t\t_pluginStatus = this._pluginStatus = {};\r\n\t\t}\r\n\t\tif (_plugins[name]) {\r\n\t\t\tif (!_isFunction(_plugins[name])) {\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tself.loadPlugin(name, fn);\r\n\t\t\t\t}, 100);\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\t\t\tif(!_pluginStatus[name]) {\r\n\t\t\t\t_plugins[name].call(self, KindEditor);\r\n\t\t\t\t_pluginStatus[name] = 'inited';\r\n\t\t\t}\r\n\t\t\tif (fn) {\r\n\t\t\t\tfn.call(self);\r\n\t\t\t}\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\t_plugins[name] = 'loading';\r\n\t\t_loadScript(self.pluginsPath + name + '/' + name + '.js?ver=' + encodeURIComponent(K.DEBUG ? _TIME : _VERSION), function() {\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tif (_plugins[name]) {\r\n\t\t\t\t\tself.loadPlugin(name, fn);\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\thandler : function(key, fn) {\r\n\t\tvar self = this;\r\n\t\tif (!self._handlers[key]) {\r\n\t\t\tself._handlers[key] = [];\r\n\t\t}\r\n\t\tif (_isFunction(fn)) {\r\n\t\t\tself._handlers[key].push(fn);\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\t_each(self._handlers[key], function() {\r\n\t\t\tfn = this.call(self, fn);\r\n\t\t});\r\n\t\treturn fn;\r\n\t},\r\n\tclickToolbar : function(name, fn) {\r\n\t\tvar self = this, key = 'clickToolbar' + name;\r\n\t\tif (fn === undefined) {\r\n\t\t\tif (self._handlers[key]) {\r\n\t\t\t\treturn self.handler(key);\r\n\t\t\t}\r\n\t\t\tself.loadPlugin(name, function() {\r\n\t\t\t\tself.handler(key);\r\n\t\t\t});\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\treturn self.handler(key, fn);\r\n\t},\r\n\tupdateState : function() {\r\n\t\tvar self = this;\r\n\t\t_each(('justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,insertunorderedlist,' +\r\n\t\t\t'subscript,superscript,bold,italic,underline,strikethrough').split(','), function(i, name) {\r\n\t\t\tself.cmd.state(name) ? self.toolbar.select(name) : self.toolbar.unselect(name);\r\n\t\t});\r\n\t\treturn self;\r\n\t},\r\n\taddContextmenu : function(item) {\r\n\t\tthis._contextmenus.push(item);\r\n\t\treturn this;\r\n\t},\r\n\tafterCreate : function(fn) {\r\n\t\treturn this.handler('afterCreate', fn);\r\n\t},\r\n\tbeforeRemove : function(fn) {\r\n\t\treturn this.handler('beforeRemove', fn);\r\n\t},\r\n\tbeforeGetHtml : function(fn) {\r\n\t\treturn this.handler('beforeGetHtml', fn);\r\n\t},\r\n\tbeforeSetHtml : function(fn) {\r\n\t\treturn this.handler('beforeSetHtml', fn);\r\n\t},\r\n\tafterSetHtml : function(fn) {\r\n\t\treturn this.handler('afterSetHtml', fn);\r\n\t},\r\n\tcreate : function() {\r\n\t\tvar self = this, fullscreenMode = self.fullscreenMode;\r\n\t\tif (self.isCreated) {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tif (self.srcElement.data('kindeditor')) {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tself.srcElement.data('kindeditor', 'true');\r\n\t\tif (fullscreenMode) {\r\n\t\t\t_docElement().style.overflow = 'hidden';\r\n\t\t} else {\r\n\t\t\t_docElement().style.overflow = '';\r\n\t\t}\r\n\t\tvar width = fullscreenMode ? _docElement().clientWidth + 'px' : self.width,\r\n\t\t\theight = fullscreenMode ? _docElement().clientHeight + 'px' : self.height;\r\n\t\tif ((_IE && _V < 8) || _QUIRKS) {\r\n\t\t\theight = _addUnit(_removeUnit(height) + 2);\r\n\t\t}\r\n\t\tvar container = self.container = K(self.layout);\r\n\t\tif (fullscreenMode) {\r\n\t\t\tK(document.body).append(container);\r\n\t\t} else {\r\n\t\t\tself.srcElement.before(container);\r\n\t\t}\r\n\t\tvar toolbarDiv = K('.toolbar', container),\r\n\t\t\teditDiv = K('.edit', container),\r\n\t\t\tstatusbar = self.statusbar = K('.statusbar', container);\r\n\t\tcontainer.removeClass('container')\r\n\t\t\t.addClass('ke-container ke-container-' + self.themeType).css('width', width);\r\n\t\tif (fullscreenMode) {\r\n\t\t\tcontainer.css({\r\n\t\t\t\tposition : 'absolute',\r\n\t\t\t\tleft : 0,\r\n\t\t\t\ttop : 0,\r\n\t\t\t\t'z-index' : 811211\r\n\t\t\t});\r\n\t\t\tif (!_GECKO) {\r\n\t\t\t\tself._scrollPos = _getScrollPos();\r\n\t\t\t}\r\n\t\t\twindow.scrollTo(0, 0);\r\n\t\t\tK(document.body).css({\r\n\t\t\t\t'height' : '1px',\r\n\t\t\t\t'overflow' : 'hidden'\r\n\t\t\t});\r\n\t\t\tK(document.body.parentNode).css('overflow', 'hidden');\r\n\t\t\tself._fullscreenExecuted = true;\r\n\t\t} else {\r\n\t\t\tif (self._fullscreenExecuted) {\r\n\t\t\t\tK(document.body).css({\r\n\t\t\t\t\t'height' : '',\r\n\t\t\t\t\t'overflow' : ''\r\n\t\t\t\t});\r\n\t\t\t\tK(document.body.parentNode).css('overflow', '');\r\n\t\t\t}\r\n\t\t\tif (self._scrollPos) {\r\n\t\t\t\twindow.scrollTo(self._scrollPos.x, self._scrollPos.y);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar htmlList = [];\r\n\t\tK.each(self.items, function(i, name) {\r\n\t\t\tif (name == '|') {\r\n\t\t\t\thtmlList.push('<span class=\"ke-inline-block ke-separator\"></span>');\r\n\t\t\t} else if (name == '/') {\r\n\t\t\t\thtmlList.push('<div class=\"ke-hr\"></div>');\r\n\t\t\t} else {\r\n\t\t\t\thtmlList.push('<span class=\"ke-outline\" data-name=\"' + name + '\" title=\"' + self.lang(name) + '\" unselectable=\"on\">');\r\n\t\t\t\thtmlList.push('<span class=\"ke-toolbar-icon ke-toolbar-icon-url ke-icon-' + name + '\" unselectable=\"on\"></span></span>');\r\n\t\t\t}\r\n\t\t});\r\n\t\tvar toolbar = self.toolbar = _toolbar({\r\n\t\t\tsrc : toolbarDiv,\r\n\t\t\thtml : htmlList.join(''),\r\n\t\t\tnoDisableItems : self.noDisableItems,\r\n\t\t\tclick : function(e, name) {\r\n\t\t\t\te.stop();\r\n\t\t\t\tif (self.menu) {\r\n\t\t\t\t\tvar menuName = self.menu.name;\r\n\t\t\t\t\tself.hideMenu();\r\n\t\t\t\t\tif (menuName === name) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tself.clickToolbar(name);\r\n\t\t\t}\r\n\t\t});\r\n\t\tvar editHeight = _removeUnit(height) - toolbar.div.height();\r\n\t\tvar edit = self.edit = _edit({\r\n\t\t\theight : editHeight > 0 && _removeUnit(height) > self.minHeight ? editHeight : self.minHeight,\r\n\t\t\tsrc : editDiv,\r\n\t\t\tsrcElement : self.srcElement,\r\n\t\t\tdesignMode : self.designMode,\r\n\t\t\tthemesPath : self.themesPath,\r\n\t\t\tbodyClass : self.bodyClass,\r\n\t\t\tcssPath : self.cssPath,\r\n\t\t\tcssData : self.cssData,\r\n\t\t\tbeforeGetHtml : function(html) {\r\n\t\t\t\thtml = self.beforeGetHtml(html);\r\n\t\t\t\thtml = _removeBookmarkTag(_removeTempTag(html));\r\n\t\t\t\treturn _formatHtml(html, self.filterMode ? self.htmlTags : null, self.urlType, self.wellFormatMode, self.indentChar);\r\n\t\t\t},\r\n\t\t\tbeforeSetHtml : function(html) {\r\n\t\t\t\thtml = _formatHtml(html, self.filterMode ? self.htmlTags : null, '', false);\r\n\t\t\t\treturn self.beforeSetHtml(html);\r\n\t\t\t},\r\n\t\t\tafterSetHtml : function() {\r\n\t\t\t\tself.edit = edit = this;\r\n\t\t\t\tself.afterSetHtml();\r\n\t\t\t},\r\n\t\t\tafterCreate : function() {\r\n\t\t\t\tself.edit = edit = this;\r\n\t\t\t\tself.cmd = edit.cmd;\r\n\t\t\t\tself._docMousedownFn = function(e) {\r\n\t\t\t\t\tif (self.menu) {\r\n\t\t\t\t\t\tself.hideMenu();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tK(edit.doc, document).mousedown(self._docMousedownFn);\r\n\t\t\t\t_bindContextmenuEvent.call(self);\r\n\t\t\t\t_bindNewlineEvent.call(self);\r\n\t\t\t\t_bindTabEvent.call(self);\r\n\t\t\t\t_bindFocusEvent.call(self);\r\n\t\t\t\tedit.afterChange(function(e) {\r\n\t\t\t\t\tif (!edit.designMode) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.updateState();\r\n\t\t\t\t\tself.addBookmark();\r\n\t\t\t\t\tif (self.options.afterChange) {\r\n\t\t\t\t\t\tself.options.afterChange.call(self);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tedit.textarea.keyup(function(e) {\r\n\t\t\t\t\tif (!e.ctrlKey && !e.altKey && _INPUT_KEY_MAP[e.which]) {\r\n\t\t\t\t\t\tif (self.options.afterChange) {\r\n\t\t\t\t\t\t\tself.options.afterChange.call(self);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (self.readonlyMode) {\r\n\t\t\t\t\tself.readonly();\r\n\t\t\t\t}\r\n\t\t\t\tself.isCreated = true;\r\n\t\t\t\tif (self.initContent === '') {\r\n\t\t\t\t\tself.initContent = self.html();\r\n\t\t\t\t}\r\n\t\t\t\tif (self._undoStack.length > 0) {\r\n\t\t\t\t\tvar prev = self._undoStack.pop();\r\n\t\t\t\t\tif (prev.start) {\r\n\t\t\t\t\t\tself.html(prev.html);\r\n\t\t\t\t\t\tedit.cmd.range.moveToBookmark(prev);\r\n\t\t\t\t\t\tself.select();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tself.afterCreate();\r\n\t\t\t\tif (self.options.afterCreate) {\r\n\t\t\t\t\tself.options.afterCreate.call(self);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tstatusbar.removeClass('statusbar').addClass('ke-statusbar')\r\n\t\t\t.append('<span class=\"ke-inline-block ke-statusbar-center-icon\"></span>')\r\n\t\t\t.append('<span class=\"ke-inline-block ke-statusbar-right-icon\"></span>');\r\n\t\tif (self._fullscreenResizeHandler) {\r\n\t\t\tK(window).unbind('resize', self._fullscreenResizeHandler);\r\n\t\t\tself._fullscreenResizeHandler = null;\r\n\t\t}\r\n\t\tfunction initResize() {\r\n\t\t\tif (statusbar.height() === 0) {\r\n\t\t\t\tsetTimeout(initResize, 100);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tself.resize(width, height, false);\r\n\t\t}\r\n\t\tinitResize();\r\n\t\tif (fullscreenMode) {\r\n\t\t\tself._fullscreenResizeHandler = function(e) {\r\n\t\t\t\tif (self.isCreated) {\r\n\t\t\t\t\tself.resize(_docElement().clientWidth, _docElement().clientHeight, false);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tK(window).bind('resize', self._fullscreenResizeHandler);\r\n\t\t\ttoolbar.select('fullscreen');\r\n\t\t\tstatusbar.first().css('visibility', 'hidden');\r\n\t\t\tstatusbar.last().css('visibility', 'hidden');\r\n\t\t} else {\r\n\t\t\tif (_GECKO) {\r\n\t\t\t\tK(window).bind('scroll', function(e) {\r\n\t\t\t\t\tself._scrollPos = _getScrollPos();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (self.resizeType > 0) {\r\n\t\t\t\t_drag({\r\n\t\t\t\t\tmoveEl : container,\r\n\t\t\t\t\tclickEl : statusbar,\r\n\t\t\t\t\tmoveFn : function(x, y, width, height, diffX, diffY) {\r\n\t\t\t\t\t\theight += diffY;\r\n\t\t\t\t\t\tself.resize(null, height);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tstatusbar.first().css('visibility', 'hidden');\r\n\t\t\t}\r\n\t\t\tif (self.resizeType === 2) {\r\n\t\t\t\t_drag({\r\n\t\t\t\t\tmoveEl : container,\r\n\t\t\t\t\tclickEl : statusbar.last(),\r\n\t\t\t\t\tmoveFn : function(x, y, width, height, diffX, diffY) {\r\n\t\t\t\t\t\twidth += diffX;\r\n\t\t\t\t\t\theight += diffY;\r\n\t\t\t\t\t\tself.resize(width, height);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tstatusbar.last().css('visibility', 'hidden');\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tremove : function() {\r\n\t\tvar self = this;\r\n\t\tif (!self.isCreated) {\r\n\t\t\treturn self;\r\n\t\t}\r\n\t\tself.beforeRemove();\r\n\t\tself.srcElement.data('kindeditor', '');\r\n\t\tif (self.menu) {\r\n\t\t\tself.hideMenu();\r\n\t\t}\r\n\t\t_each(self.dialogs, function() {\r\n\t\t\tself.hideDialog();\r\n\t\t});\r\n\t\tK(document).unbind('mousedown', self._docMousedownFn);\r\n\t\tself.toolbar.remove();\r\n\t\tself.edit.remove();\r\n\t\tself.statusbar.last().unbind();\r\n\t\tself.statusbar.unbind();\r\n\t\tself.container.remove();\r\n\t\tself.container = self.toolbar = self.edit = self.menu = null;\r\n\t\tself.dialogs = [];\r\n\t\tself.isCreated = false;\r\n\t\treturn self;\r\n\t},\r\n\tresize : function(width, height, updateProp) {\r\n\t\tvar self = this;\r\n\t\tupdateProp = _undef(updateProp, true);\r\n\t\tif (width) {\r\n\t\t\tif (!/%/.test(width)) {\r\n\t\t\t\twidth = _removeUnit(width);\r\n\t\t\t\twidth = width < self.minWidth ? self.minWidth : width;\r\n\t\t\t}\r\n\t\t\tself.container.css('width', _addUnit(width));\r\n\t\t\tif (updateProp) {\r\n\t\t\t\tself.width = _addUnit(width);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (height) {\r\n\t\t\theight = _removeUnit(height);\r\n\t\t\teditHeight = _removeUnit(height) - self.toolbar.div.height() - self.statusbar.height();\r\n\t\t\teditHeight = editHeight < self.minHeight ? self.minHeight : editHeight;\r\n\t\t\tself.edit.setHeight(editHeight);\r\n\t\t\tif (updateProp) {\r\n\t\t\t\tself.height = _addUnit(height);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tselect : function() {\r\n\t\tthis.isCreated && this.cmd.select();\r\n\t\treturn this;\r\n\t},\r\n\thtml : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\treturn self.isCreated ? self.edit.html() : _elementVal(self.srcElement);\r\n\t\t}\r\n\t\tself.isCreated ? self.edit.html(val) : _elementVal(self.srcElement, val);\r\n\t\tif (self.isCreated) {\r\n\t\t\tself.cmd.selection();\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tfullHtml : function() {\r\n\t\treturn this.isCreated ? this.edit.html(undefined, true) : '';\r\n\t},\r\n\ttext : function(val) {\r\n\t\tvar self = this;\r\n\t\tif (val === undefined) {\r\n\t\t\treturn _trim(self.html().replace(/<(?!img|embed).*?>/ig, '').replace(/ /ig, ' '));\r\n\t\t} else {\r\n\t\t\treturn self.html(_escape(val));\r\n\t\t}\r\n\t},\r\n\tisEmpty : function() {\r\n\t\treturn _trim(this.text().replace(/\\r\\n|\\n|\\r/, '')) === '';\r\n\t},\r\n\tisDirty : function() {\r\n\t\treturn _trim(this.initContent.replace(/\\r\\n|\\n|\\r|t/g, '')) !== _trim(this.html().replace(/\\r\\n|\\n|\\r|t/g, ''));\r\n\t},\r\n\tselectedHtml : function() {\r\n\t\tvar val = this.isCreated ? this.cmd.range.html() : '';\r\n\t\tval = _removeBookmarkTag(_removeTempTag(val));\r\n\t\treturn val;\r\n\t},\r\n\tcount : function(mode) {\r\n\t\tvar self = this;\r\n\t\tmode = (mode || 'html').toLowerCase();\r\n\t\tif (mode === 'html') {\r\n\t\t\treturn self.html().length;\r\n\t\t}\r\n\t\tif (mode === 'text') {\r\n\t\t\treturn self.text().replace(/<(?:img|embed).*?>/ig, 'K').replace(/\\r\\n|\\n|\\r/g, '').length;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\texec : function(key) {\r\n\t\tkey = key.toLowerCase();\r\n\t\tvar self = this, cmd = self.cmd,\r\n\t\t\tchangeFlag = _inArray(key, 'selectall,copy,paste,print'.split(',')) < 0;\r\n\t\tif (changeFlag) {\r\n\t\t\tself.addBookmark(false);\r\n\t\t}\r\n\t\tcmd[key].apply(cmd, _toArray(arguments, 1));\r\n\t\tif (changeFlag) {\r\n\t\t\tself.updateState();\r\n\t\t\tself.addBookmark(false);\r\n\t\t\tif (self.options.afterChange) {\r\n\t\t\t\tself.options.afterChange.call(self);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\tinsertHtml : function(val, quickMode) {\r\n\t\tif (!this.isCreated) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tval = this.beforeSetHtml(val);\r\n\t\tthis.exec('inserthtml', val, quickMode);\r\n\t\treturn this;\r\n\t},\r\n\tappendHtml : function(val) {\r\n\t\tthis.html(this.html() + val);\r\n\t\tif (this.isCreated) {\r\n\t\t\tvar cmd = this.cmd;\r\n\t\t\tcmd.range.selectNodeContents(cmd.doc.body).collapse(false);\r\n\t\t\tcmd.select();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\tsync : function() {\r\n\t\t_elementVal(this.srcElement, this.html());\r\n\t\treturn this;\r\n\t},\r\n\tfocus : function() {\r\n\t\tthis.isCreated ? this.edit.focus() : this.srcElement[0].focus();\r\n\t\treturn this;\r\n\t},\r\n\tblur : function() {\r\n\t\tthis.isCreated ? this.edit.blur() : this.srcElement[0].blur();\r\n\t\treturn this;\r\n\t},\r\n\taddBookmark : function(checkSize) {\r\n\t\tcheckSize = _undef(checkSize, true);\r\n\t\tvar self = this, edit = self.edit,\r\n\t\t\tbody = edit.doc.body,\r\n\t\t\thtml = _removeTempTag(body.innerHTML), bookmark;\r\n\t\tif (checkSize && self._undoStack.length > 0) {\r\n\t\t\tvar prev = self._undoStack[self._undoStack.length - 1];\r\n\t\t\tif (Math.abs(html.length - _removeBookmarkTag(prev.html).length) < self.minChangeSize) {\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (edit.designMode && !self._firstAddBookmark) {\r\n\t\t\tvar range = self.cmd.range;\r\n\t\t\tbookmark = range.createBookmark(true);\r\n\t\t\tbookmark.html = _removeTempTag(body.innerHTML);\r\n\t\t\trange.moveToBookmark(bookmark);\r\n\t\t} else {\r\n\t\t\tbookmark = {\r\n\t\t\t\thtml : html\r\n\t\t\t};\r\n\t\t}\r\n\t\tself._firstAddBookmark = false;\r\n\t\t_addBookmarkToStack(self._undoStack, bookmark);\r\n\t\treturn self;\r\n\t},\r\n\tundo : function() {\r\n\t\treturn _undoToRedo.call(this, this._undoStack, this._redoStack);\r\n\t},\r\n\tredo : function() {\r\n\t\treturn _undoToRedo.call(this, this._redoStack, this._undoStack);\r\n\t},\r\n\tfullscreen : function(bool) {\r\n\t\tthis.fullscreenMode = (bool === undefined ? !this.fullscreenMode : bool);\r\n\t\tthis.addBookmark(false);\r\n\t\treturn this.remove().create();\r\n\t},\r\n\treadonly : function(isReadonly) {\r\n\t\tisReadonly = _undef(isReadonly, true);\r\n\t\tvar self = this, edit = self.edit, doc = edit.doc;\r\n\t\tif (self.designMode) {\r\n\t\t\tself.toolbar.disableAll(isReadonly, []);\r\n\t\t} else {\r\n\t\t\t_each(self.noDisableItems, function() {\r\n\t\t\t\tself.toolbar[isReadonly ? 'disable' : 'enable'](this);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (_IE) {\r\n\t\t\tdoc.body.contentEditable = !isReadonly;\r\n\t\t} else {\r\n\t\t\tdoc.designMode = isReadonly ? 'off' : 'on';\r\n\t\t}\r\n\t\tedit.textarea[0].disabled = isReadonly;\r\n\t},\r\n\tcreateMenu : function(options) {\r\n\t\tvar self = this,\r\n\t\t\tname = options.name,\r\n\t\t\tknode = self.toolbar.get(name),\r\n\t\t\tpos = knode.pos();\r\n\t\toptions.x = pos.x;\r\n\t\toptions.y = pos.y + knode.height();\r\n\t\toptions.z = self.options.zIndex;\r\n\t\toptions.shadowMode = _undef(options.shadowMode, self.shadowMode);\r\n\t\tif (options.selectedColor !== undefined) {\r\n\t\t\toptions.cls = 'ke-colorpicker-' + self.themeType;\r\n\t\t\toptions.noColor = self.lang('noColor');\r\n\t\t\tself.menu = _colorpicker(options);\r\n\t\t} else {\r\n\t\t\toptions.cls = 'ke-menu-' + self.themeType;\r\n\t\t\toptions.centerLineMode = false;\r\n\t\t\tself.menu = _menu(options);\r\n\t\t}\r\n\t\treturn self.menu;\r\n\t},\r\n\thideMenu : function() {\r\n\t\tthis.menu.remove();\r\n\t\tthis.menu = null;\r\n\t\treturn this;\r\n\t},\r\n\thideContextmenu : function() {\r\n\t\tthis.contextmenu.remove();\r\n\t\tthis.contextmenu = null;\r\n\t\treturn this;\r\n\t},\r\n\tcreateDialog : function(options) {\r\n\t\tvar self = this, name = options.name;\r\n\t\toptions.z = self.options.zIndex;\r\n\t\toptions.shadowMode = _undef(options.shadowMode, self.shadowMode);\r\n\t\toptions.closeBtn = _undef(options.closeBtn, {\r\n\t\t\tname : self.lang('close'),\r\n\t\t\tclick : function(e) {\r\n\t\t\t\tself.hideDialog();\r\n\t\t\t\tif (_IE && self.cmd) {\r\n\t\t\t\t\tself.cmd.select();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\toptions.noBtn = _undef(options.noBtn, {\r\n\t\t\tname : self.lang(options.yesBtn ? 'no' : 'close'),\r\n\t\t\tclick : function(e) {\r\n\t\t\t\tself.hideDialog();\r\n\t\t\t\tif (_IE && self.cmd) {\r\n\t\t\t\t\tself.cmd.select();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (self.dialogAlignType != 'page') {\r\n\t\t\toptions.alignEl = self.container;\r\n\t\t}\r\n\t\toptions.cls = 'ke-dialog-' + self.themeType;\r\n\t\tif (self.dialogs.length > 0) {\r\n\t\t\tvar firstDialog = self.dialogs[0],\r\n\t\t\t\tparentDialog = self.dialogs[self.dialogs.length - 1];\r\n\t\t\tfirstDialog.setMaskIndex(parentDialog.z + 2);\r\n\t\t\toptions.z = parentDialog.z + 3;\r\n\t\t\toptions.showMask = false;\r\n\t\t}\r\n\t\tvar dialog = _dialog(options);\r\n\t\tself.dialogs.push(dialog);\r\n\t\treturn dialog;\r\n\t},\r\n\thideDialog : function() {\r\n\t\tvar self = this;\r\n\t\tif (self.dialogs.length > 0) {\r\n\t\t\tself.dialogs.pop().remove();\r\n\t\t}\r\n\t\tif (self.dialogs.length > 0) {\r\n\t\t\tvar firstDialog = self.dialogs[0],\r\n\t\t\t\tparentDialog = self.dialogs[self.dialogs.length - 1];\r\n\t\t\tfirstDialog.setMaskIndex(parentDialog.z - 1);\r\n\t\t}\r\n\t\treturn self;\r\n\t},\r\n\terrorDialog : function(html) {\r\n\t\tvar self = this;\r\n\t\tvar dialog = self.createDialog({\r\n\t\t\twidth : 750,\r\n\t\t\ttitle : self.lang('uploadError'),\r\n\t\t\tbody : '<div style=\"padding:10px 20px;\"><iframe frameborder=\"0\" style=\"width:708px;height:400px;\"></iframe></div>'\r\n\t\t});\r\n\t\tvar iframe = K('iframe', dialog.div), doc = K.iframeDoc(iframe);\r\n\t\tdoc.open();\r\n\t\tdoc.write(html);\r\n\t\tdoc.close();\r\n\t\tK(doc.body).css('background-color', '#FFF');\r\n\t\tiframe[0].contentWindow.focus();\r\n\t\treturn self;\r\n\t}\r\n};\r\nfunction _editor(options) {\r\n\treturn new KEditor(options);\r\n}\r\n_instances = [];\r\nfunction _create(expr, options) {\r\n\toptions = options || {};\r\n\toptions.basePath = _undef(options.basePath, K.basePath);\r\n\toptions.themesPath = _undef(options.themesPath, options.basePath + 'themes/');\r\n\toptions.langPath = _undef(options.langPath, options.basePath + 'lang/');\r\n\toptions.pluginsPath = _undef(options.pluginsPath, options.basePath + 'plugins/');\r\n\tif (_undef(options.loadStyleMode, K.options.loadStyleMode)) {\r\n\t\tvar themeType = _undef(options.themeType, K.options.themeType);\r\n\t\t_loadStyle(options.themesPath + 'default/default.css');\r\n\t\t_loadStyle(options.themesPath + themeType + '/' + themeType + '.css');\r\n\t}\r\n\tfunction create(editor) {\r\n\t\t_each(_plugins, function(name, fn) {\r\n\t\t\tif (_isFunction(fn)) {\r\n\t\t\t\tfn.call(editor, KindEditor);\r\n\t\t\t\tif (!editor._pluginStatus) {\r\n\t\t\t\t\teditor._pluginStatus = {};\r\n\t\t\t\t}\r\n\t\t\t\teditor._pluginStatus[name] = 'inited';\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn editor.create();\r\n\t}\r\n\tvar knode = K(expr);\r\n\tif (!knode || knode.length === 0) {\r\n\t\treturn;\r\n\t}\r\n\tif (knode.length > 1) {\r\n\t\tknode.each(function() {\r\n\t\t\t_create(this, options);\r\n\t\t});\r\n\t\treturn _instances[0];\r\n\t}\r\n\toptions.srcElement = knode[0];\r\n\tvar editor = new KEditor(options);\r\n\t_instances.push(editor);\r\n\tif (_language[editor.langType]) {\r\n\t\treturn create(editor);\r\n\t}\r\n\t_loadScript(editor.langPath + editor.langType + '.js?ver=' + encodeURIComponent(K.DEBUG ? _TIME : _VERSION), function() {\r\n\t\tcreate(editor);\r\n\t});\r\n\treturn editor;\r\n}\r\nfunction _eachEditor(expr, fn) {\r\n\tK(expr).each(function(i, el) {\r\n\t\tK.each(_instances, function(j, editor) {\r\n\t\t\tif (editor && editor.srcElement[0] == el) {\r\n\t\t\t\tfn.call(editor, j);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\nK.remove = function(expr) {\r\n\t_eachEditor(expr, function(i) {\r\n\t\tthis.remove();\r\n\t\t_instances.splice(i, 1);\r\n\t});\r\n};\r\nK.sync = function(expr) {\r\n\t_eachEditor(expr, function() {\r\n\t\tthis.sync();\r\n\t});\r\n};\r\nK.html = function(expr, val) {\r\n\t_eachEditor(expr, function() {\r\n\t\tthis.html(val);\r\n\t});\r\n};\r\nK.insertHtml = function(expr, val) {\r\n\t_eachEditor(expr, function() {\r\n\t\tthis.insertHtml(val);\r\n\t});\r\n};\r\nK.appendHtml = function(expr, val) {\r\n\t_eachEditor(expr, function() {\r\n\t\tthis.appendHtml(val);\r\n\t});\r\n};\r\n\r\r\nif (_IE && _V < 7) {\r\n\t_nativeCommand(document, 'BackgroundImageCache', true);\r\n}\r\nK.EditorClass = KEditor;\r\nK.editor = _editor;\r\nK.create = _create;\r\nK.instances = _instances;\r\nK.plugin = _plugin;\r\nK.lang = _lang;\r\n\r\r\n_plugin('core', function(K) {\r\n\tvar self = this,\r\n\t\tshortcutKeys = {\r\n\t\t\tundo : 'Z', redo : 'Y', bold : 'B', italic : 'I', underline : 'U', print : 'P', selectall : 'A'\r\n\t\t};\r\n\tself.afterSetHtml(function() {\r\n\t\tif (self.options.afterChange) {\r\n\t\t\tself.options.afterChange.call(self);\r\n\t\t}\r\n\t});\r\n\tself.afterCreate(function() {\r\n\t\tif (self.syncType != 'form') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar el = K(self.srcElement), hasForm = false;\r\n\t\twhile ((el = el.parent())) {\r\n\t\t\tif (el.name == 'form') {\r\n\t\t\t\thasForm = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (hasForm) {\r\n\t\t\tel.bind('submit', function(e) {\r\n\t\t\t\tself.sync();\r\n\t\t\t\tK(window).bind('unload', function() {\r\n\t\t\t\t\tself.edit.textarea.remove();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tvar resetBtn = K('[type=\"reset\"]', el);\r\n\t\t\tresetBtn.click(function() {\r\n\t\t\t\tself.html(self.initContent);\r\n\t\t\t\tself.cmd.selection();\r\n\t\t\t});\r\n\t\t\tself.beforeRemove(function() {\r\n\t\t\t\tel.unbind();\r\n\t\t\t\tresetBtn.unbind();\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\tself.clickToolbar('source', function() {\r\n\t\tif (self.edit.designMode) {\r\n\t\t\tself.toolbar.disableAll(true);\r\n\t\t\tself.edit.design(false);\r\n\t\t\tself.toolbar.select('source');\r\n\t\t} else {\r\n\t\t\tself.toolbar.disableAll(false);\r\n\t\t\tself.edit.design(true);\r\n\t\t\tself.toolbar.unselect('source');\r\n\t\t\tif (_GECKO) {\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tself.cmd.selection();\r\n\t\t\t\t}, 0);\r\n\t\t\t} else {\r\n\t\t\t\tself.cmd.selection();\r\n\t\t\t}\r\n\t\t}\r\n\t\tself.designMode = self.edit.designMode;\r\n\t});\r\n\tself.afterCreate(function() {\r\n\t\tif (!self.designMode) {\r\n\t\t\tself.toolbar.disableAll(true).select('source');\r\n\t\t}\r\n\t});\r\n\tself.clickToolbar('fullscreen', function() {\r\n\t\tself.fullscreen();\r\n\t});\r\n\tif (self.fullscreenShortcut) {\r\n\t\tvar loaded = false;\r\n\t\tself.afterCreate(function() {\r\n\t\t\tK(self.edit.doc, self.edit.textarea).keyup(function(e) {\r\n\t\t\t\tif (e.which == 27) {\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tself.fullscreen();\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (loaded) {\r\n\t\t\t\tif (_IE && !self.designMode) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tself.focus();\r\n\t\t\t}\r\n\t\t\tif (!loaded) {\r\n\t\t\t\tloaded = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t_each('undo,redo'.split(','), function(i, name) {\r\n\t\tif (shortcutKeys[name]) {\r\n\t\t\tself.afterCreate(function() {\r\n\t\t\t\t_ctrl(this.edit.doc, shortcutKeys[name], function() {\r\n\t\t\t\t\tself.clickToolbar(name);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\tself.clickToolbar(name, function() {\r\n\t\t\tself[name]();\r\n\t\t});\r\n\t});\r\n\tself.clickToolbar('formatblock', function() {\r\n\t\tvar blocks = self.lang('formatblock.formatBlock'),\r\n\t\t\theights = {\r\n\t\t\t\th1 : 28,\r\n\t\t\t\th2 : 24,\r\n\t\t\t\th3 : 18,\r\n\t\t\t\tH4 : 14,\r\n\t\t\t\tp : 12\r\n\t\t\t},\r\n\t\t\tcurVal = self.cmd.val('formatblock'),\r\n\t\t\tmenu = self.createMenu({\r\n\t\t\t\tname : 'formatblock',\r\n\t\t\t\twidth : self.langType == 'en' ? 200 : 150\r\n\t\t\t});\r\n\t\t_each(blocks, function(key, val) {\r\n\t\t\tvar style = 'font-size:' + heights[key] + 'px;';\r\n\t\t\tif (key.charAt(0) === 'h') {\r\n\t\t\t\tstyle += 'font-weight:bold;';\r\n\t\t\t}\r\n\t\t\tmenu.addItem({\r\n\t\t\t\ttitle : '<span style=\"' + style + '\" unselectable=\"on\">' + val + '</span>',\r\n\t\t\t\theight : heights[key] + 12,\r\n\t\t\t\tchecked : (curVal === key || curVal === val),\r\n\t\t\t\tclick : function() {\r\n\t\t\t\t\tself.select().exec('formatblock', '<' + key + '>').hideMenu();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\tself.clickToolbar('fontname', function() {\r\n\t\tvar curVal = self.cmd.val('fontname'),\r\n\t\t\tmenu = self.createMenu({\r\n\t\t\t\tname : 'fontname',\r\n\t\t\t\twidth : 150\r\n\t\t\t});\r\n\t\t_each(self.lang('fontname.fontName'), function(key, val) {\r\n\t\t\tmenu.addItem({\r\n\t\t\t\ttitle : '<span style=\"font-family: ' + key + ';\" unselectable=\"on\">' + val + '</span>',\r\n\t\t\t\tchecked : (curVal === key.toLowerCase() || curVal === val.toLowerCase()),\r\n\t\t\t\tclick : function() {\r\n\t\t\t\t\tself.exec('fontname', key).hideMenu();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\tself.clickToolbar('fontsize', function() {\r\n\t\tvar curVal = self.cmd.val('fontsize'),\r\n\t\t\tmenu = self.createMenu({\r\n\t\t\t\tname : 'fontsize',\r\n\t\t\t\twidth : 150\r\n\t\t\t});\r\n\t\t_each(self.fontSizeTable, function(i, val) {\r\n\t\t\tmenu.addItem({\r\n\t\t\t\ttitle : '<span style=\"font-size:' + val + ';\" unselectable=\"on\">' + val + '</span>',\r\n\t\t\t\theight : _removeUnit(val) + 12,\r\n\t\t\t\tchecked : curVal === val,\r\n\t\t\t\tclick : function() {\r\n\t\t\t\t\tself.exec('fontsize', val).hideMenu();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\t_each('forecolor,hilitecolor'.split(','), function(i, name) {\r\n\t\tself.clickToolbar(name, function() {\r\n\t\t\tself.createMenu({\r\n\t\t\t\tname : name,\r\n\t\t\t\tselectedColor : self.cmd.val(name) || 'default',\r\n\t\t\t\tcolors : self.colorTable,\r\n\t\t\t\tclick : function(color) {\r\n\t\t\t\t\tself.exec(name, color).hideMenu();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\t_each(('cut,copy,paste').split(','), function(i, name) {\r\n\t\tself.clickToolbar(name, function() {\r\n\t\t\tself.focus();\r\n\t\t\ttry {\r\n\t\t\t\tself.exec(name, null);\r\n\t\t\t} catch(e) {\r\n\t\t\t\talert(self.lang(name + 'Error'));\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\tself.clickToolbar('about', function() {\r\n\t\tvar html = '<div style=\"margin:20px;\">' +\r\n\t\t\t'<div>KindEditor ' + _VERSION + '</div>' +\r\n\t\t\t'<div>Copyright © <a href=\"http://www.kindsoft.net/\" target=\"_blank\">kindsoft.net</a> All rights reserved.</div>' +\r\n\t\t\t'</div>';\r\n\t\tself.createDialog({\r\n\t\t\tname : 'about',\r\n\t\t\twidth : 350,\r\n\t\t\ttitle : self.lang('about'),\r\n\t\t\tbody : html\r\n\t\t});\r\n\t});\r\n\tself.plugin.getSelectedLink = function() {\r\n\t\treturn self.cmd.commonAncestor('a');\r\n\t};\r\n\tself.plugin.getSelectedImage = function() {\r\n\t\treturn _getImageFromRange(self.edit.cmd.range, function(img) {\r\n\t\t\treturn !/^ke-\\w+$/i.test(img[0].className);\r\n\t\t});\r\n\t};\r\n\tself.plugin.getSelectedFlash = function() {\r\n\t\treturn _getImageFromRange(self.edit.cmd.range, function(img) {\r\n\t\t\treturn img[0].className == 'ke-flash';\r\n\t\t});\r\n\t};\r\n\tself.plugin.getSelectedMedia = function() {\r\n\t\treturn _getImageFromRange(self.edit.cmd.range, function(img) {\r\n\t\t\treturn img[0].className == 'ke-media' || img[0].className == 'ke-rm';\r\n\t\t});\r\n\t};\r\n\tself.plugin.getSelectedAnchor = function() {\r\n\t\treturn _getImageFromRange(self.edit.cmd.range, function(img) {\r\n\t\t\treturn img[0].className == 'ke-anchor';\r\n\t\t});\r\n\t};\r\n\t_each('link,image,flash,media,anchor'.split(','), function(i, name) {\r\n\t\tvar uName = name.charAt(0).toUpperCase() + name.substr(1);\r\n\t\t_each('edit,delete'.split(','), function(j, val) {\r\n\t\t\tself.addContextmenu({\r\n\t\t\t\ttitle : self.lang(val + uName),\r\n\t\t\t\tclick : function() {\r\n\t\t\t\t\tself.loadPlugin(name, function() {\r\n\t\t\t\t\t\tself.plugin[name][val]();\r\n\t\t\t\t\t\tself.hideMenu();\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tcond : self.plugin['getSelected' + uName],\r\n\t\t\t\twidth : 150,\r\n\t\t\t\ticonClass : val == 'edit' ? 'ke-icon-' + name : undefined\r\n\t\t\t});\r\n\t\t});\r\n\t\tself.addContextmenu({ title : '-' });\r\n\t});\r\n\tself.plugin.getSelectedTable = function() {\r\n\t\treturn self.cmd.commonAncestor('table');\r\n\t};\r\n\tself.plugin.getSelectedRow = function() {\r\n\t\treturn self.cmd.commonAncestor('tr');\r\n\t};\r\n\tself.plugin.getSelectedCell = function() {\r\n\t\treturn self.cmd.commonAncestor('td');\r\n\t};\r\n\t_each(('prop,cellprop,colinsertleft,colinsertright,rowinsertabove,rowinsertbelow,rowmerge,colmerge,' +\r\n\t'rowsplit,colsplit,coldelete,rowdelete,insert,delete').split(','), function(i, val) {\r\n\t\tvar cond = _inArray(val, ['prop', 'delete']) < 0 ? self.plugin.getSelectedCell : self.plugin.getSelectedTable;\r\n\t\tself.addContextmenu({\r\n\t\t\ttitle : self.lang('table' + val),\r\n\t\t\tclick : function() {\r\n\t\t\t\tself.loadPlugin('table', function() {\r\n\t\t\t\t\tself.plugin.table[val]();\r\n\t\t\t\t\tself.hideMenu();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tcond : cond,\r\n\t\t\twidth : 170,\r\n\t\t\ticonClass : 'ke-icon-table' + val\r\n\t\t});\r\n\t});\r\n\tself.addContextmenu({ title : '-' });\r\n\t_each(('selectall,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,' +\r\n\t\t'insertunorderedlist,indent,outdent,subscript,superscript,hr,print,' +\r\n\t\t'bold,italic,underline,strikethrough,removeformat,unlink').split(','), function(i, name) {\r\n\t\tif (shortcutKeys[name]) {\r\n\t\t\tself.afterCreate(function() {\r\n\t\t\t\t_ctrl(this.edit.doc, shortcutKeys[name], function() {\r\n\t\t\t\t\tself.cmd.selection();\r\n\t\t\t\t\tself.clickToolbar(name);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\tself.clickToolbar(name, function() {\r\n\t\t\tself.focus().exec(name, null);\r\n\t\t});\r\n\t});\r\n\tself.afterCreate(function() {\r\n\t\tvar doc = self.edit.doc, cmd, bookmark, div,\r\n\t\t\tcls = '__kindeditor_paste__', pasting = false;\r\n\t\tfunction movePastedData() {\r\n\t\t\tcmd.range.moveToBookmark(bookmark);\r\n\t\t\tcmd.select();\r\n\t\t\tif (_WEBKIT) {\r\n\t\t\t\tK('div.' + cls, div).each(function() {\r\n\t\t\t\t\tK(this).after('<br />').remove(true);\r\n\t\t\t\t});\r\n\t\t\t\tK('span.Apple-style-span', div).remove(true);\r\n\t\t\t\tK('span.Apple-tab-span', div).remove(true);\r\n\t\t\t\tK('span[style]', div).each(function() {\r\n\t\t\t\t\tif (K(this).css('white-space') == 'nowrap') {\r\n\t\t\t\t\t\tK(this).remove(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tK('meta', div).remove();\r\n\t\t\t}\r\n\t\t\tvar html = div[0].innerHTML;\r\n\t\t\tdiv.remove();\r\n\t\t\tif (html === '') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (_WEBKIT) {\r\n\t\t\t\thtml = html.replace(/(<br>)\\1/ig, '$1');\r\n\t\t\t}\r\n\t\t\tif (self.pasteType === 2) {\r\n\t\t\t\thtml = html.replace(/(<(?:p|p\\s[^>]*)>) *(<\\/p>)/ig, '');\r\n\t\t\t\tif (/schemas-microsoft-com|worddocument|mso-\\w+/i.test(html)) {\r\n\t\t\t\t\thtml = _clearMsWord(html, self.filterMode ? self.htmlTags : K.options.htmlTags);\r\n\t\t\t\t} else {\r\n\t\t\t\t\thtml = _formatHtml(html, self.filterMode ? self.htmlTags : null);\r\n\t\t\t\t\thtml = self.beforeSetHtml(html);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (self.pasteType === 1) {\r\n\t\t\t\thtml = html.replace(/ /ig, ' ');\r\n\t\t\t\thtml = html.replace(/\\n\\s*\\n/g, '\\n');\r\n\t\t\t\thtml = html.replace(/<br[^>]*>/ig, '\\n');\r\n\t\t\t\thtml = html.replace(/<\\/p><p[^>]*>/ig, '\\n');\r\n\t\t\t\thtml = html.replace(/<[^>]+>/g, '');\r\n\t\t\t\thtml = html.replace(/ {2}/g, ' ');\r\n\t\t\t\tif (self.newlineTag == 'p') {\r\n\t\t\t\t\tif (/\\n/.test(html)) {\r\n\t\t\t\t\t\thtml = html.replace(/^/, '<p>').replace(/$/, '<br /></p>').replace(/\\n/g, '<br /></p><p>');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\thtml = html.replace(/\\n/g, '<br />$&');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tself.insertHtml(html, true);\r\n\t\t}\r\n\t\tK(doc.body).bind('paste', function(e){\r\n\t\t\tif (self.pasteType === 0) {\r\n\t\t\t\te.stop();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (pasting) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tpasting = true;\r\n\t\t\tK('div.' + cls, doc).remove();\r\n\t\t\tcmd = self.cmd.selection();\r\n\t\t\tbookmark = cmd.range.createBookmark();\r\n\t\t\tdiv = K('<div class=\"' + cls + '\"></div>', doc).css({\r\n\t\t\t\tposition : 'absolute',\r\n\t\t\t\twidth : '1px',\r\n\t\t\t\theight : '1px',\r\n\t\t\t\toverflow : 'hidden',\r\n\t\t\t\tleft : '-1981px',\r\n\t\t\t\ttop : K(bookmark.start).pos().y + 'px',\r\n\t\t\t\t'white-space' : 'nowrap'\r\n\t\t\t});\r\n\t\t\tK(doc.body).append(div);\r\n\t\t\tif (_IE) {\r\n\t\t\t\tvar rng = cmd.range.get(true);\r\n\t\t\t\trng.moveToElementText(div[0]);\r\n\t\t\t\trng.select();\r\n\t\t\t\trng.execCommand('paste');\r\n\t\t\t\te.preventDefault();\r\n\t\t\t} else {\r\n\t\t\t\tcmd.range.selectNodeContents(div[0]);\r\n\t\t\t\tcmd.select();\r\n\t\t\t\tdiv[0].tabIndex = -1;\r\n\t\t\t\tdiv[0].focus();\r\n\t\t\t}\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tmovePastedData();\r\n\t\t\t\tpasting = false;\r\n\t\t\t}, 0);\r\n\t\t});\r\n\t});\r\n\tself.beforeGetHtml(function(html) {\r\n\t\tif (_IE && _V <= 8) {\r\n\t\t\thtml = html.replace(/<div\\s+[^>]*data-ke-input-tag=\"([^\"]*)\"[^>]*>([\\s\\S]*?)<\\/div>/ig, function(full, tag) {\r\n\t\t\t\treturn unescape(tag);\r\n\t\t\t});\r\n\t\t\thtml = html.replace(/(<input)((?:\\s+[^>]*)?>)/ig, function($0, $1, $2) {\r\n\t\t\t\tif (!/\\s+type=\"[^\"]+\"/i.test($0)) {\r\n\t\t\t\t\treturn $1 + ' type=\"text\"' + $2;\r\n\t\t\t\t}\r\n\t\t\t\treturn $0;\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn html.replace(/(<(?:noscript|noscript\\s[^>]*)>)([\\s\\S]*?)(<\\/noscript>)/ig, function($0, $1, $2, $3) {\r\n\t\t\treturn $1 + _unescape($2).replace(/\\s+/g, ' ') + $3;\r\n\t\t})\r\n\t\t.replace(/<img[^>]*class=\"?ke-(flash|rm|media)\"?[^>]*>/ig, function(full) {\r\n\t\t\tvar imgAttrs = _getAttrList(full);\r\n\t\t\tvar styles = _getCssList(imgAttrs.style || '');\r\n\t\t\tvar attrs = _mediaAttrs(imgAttrs['data-ke-tag']);\r\n\t\t\tvar width = _undef(styles.width, '');\r\n\t\t\tvar height = _undef(styles.height, '');\r\n\t\t\tif (/px/i.test(width)) {\r\n\t\t\t\twidth = _removeUnit(width);\r\n\t\t\t}\r\n\t\t\tif (/px/i.test(height)) {\r\n\t\t\t\theight = _removeUnit(height);\r\n\t\t\t}\r\n\t\t\tattrs.width = _undef(imgAttrs.width, width);\r\n\t\t\tattrs.height = _undef(imgAttrs.height, height);\r\n\t\t\treturn _mediaEmbed(attrs);\r\n\t\t})\r\n\t\t.replace(/<img[^>]*class=\"?ke-anchor\"?[^>]*>/ig, function(full) {\r\n\t\t\tvar imgAttrs = _getAttrList(full);\r\n\t\t\treturn '<a name=\"' + unescape(imgAttrs['data-ke-name']) + '\"></a>';\r\n\t\t})\r\n\t\t.replace(/<div\\s+[^>]*data-ke-script-attr=\"([^\"]*)\"[^>]*>([\\s\\S]*?)<\\/div>/ig, function(full, attr, code) {\r\n\t\t\treturn '<script' + unescape(attr) + '>' + unescape(code) + '</script>';\r\n\t\t})\r\n\t\t.replace(/<div\\s+[^>]*data-ke-noscript-attr=\"([^\"]*)\"[^>]*>([\\s\\S]*?)<\\/div>/ig, function(full, attr, code) {\r\n\t\t\treturn '<noscript' + unescape(attr) + '>' + unescape(code) + '</noscript>';\r\n\t\t})\r\n\t\t.replace(/(<[^>]*)data-ke-src=\"([^\"]*)\"([^>]*>)/ig, function(full, start, src, end) {\r\n\t\t\tfull = full.replace(/(\\s+(?:href|src)=\")[^\"]*(\")/i, function($0, $1, $2) {\r\n\t\t\t\treturn $1 + _unescape(src) + $2;\r\n\t\t\t});\r\n\t\t\tfull = full.replace(/\\s+data-ke-src=\"[^\"]*\"/i, '');\r\n\t\t\treturn full;\r\n\t\t})\r\n\t\t.replace(/(<[^>]+\\s)data-ke-(on\\w+=\"[^\"]*\"[^>]*>)/ig, function(full, start, end) {\r\n\t\t\treturn start + end;\r\n\t\t});\r\n\t});\r\n\tself.beforeSetHtml(function(html) {\r\n\t\tif (_IE && _V <= 8) {\r\n\t\t\thtml = html.replace(/<input[^>]*>|<(select|button)[^>]*>[\\s\\S]*?<\\/\\1>/ig, function(full) {\r\n\t\t\t\tvar attrs = _getAttrList(full);\r\n\t\t\t\tvar styles = _getCssList(attrs.style || '');\r\n\t\t\t\tif (styles.display == 'none') {\r\n\t\t\t\t\treturn '<div class=\"ke-display-none\" data-ke-input-tag=\"' + escape(full) + '\"></div>';\r\n\t\t\t\t}\r\n\t\t\t\treturn full;\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn html.replace(/<embed[^>]*type=\"([^\"]+)\"[^>]*>(?:<\\/embed>)?/ig, function(full) {\r\n\t\t\tvar attrs = _getAttrList(full);\r\n\t\t\tattrs.src = _undef(attrs.src, '');\r\n\t\t\tattrs.width = _undef(attrs.width, 0);\r\n\t\t\tattrs.height = _undef(attrs.height, 0);\r\n\t\t\treturn _mediaImg(self.themesPath + 'common/blank.gif', attrs);\r\n\t\t})\r\n\t\t.replace(/<a[^>]*name=\"([^\"]+)\"[^>]*>(?:<\\/a>)?/ig, function(full) {\r\n\t\t\tvar attrs = _getAttrList(full);\r\n\t\t\tif (attrs.href !== undefined) {\r\n\t\t\t\treturn full;\r\n\t\t\t}\r\n\t\t\treturn '<img class=\"ke-anchor\" src=\"' + self.themesPath + 'common/anchor.gif\" data-ke-name=\"' + escape(attrs.name) + '\" />';\r\n\t\t})\r\n\t\t.replace(/<script([^>]*)>([\\s\\S]*?)<\\/script>/ig, function(full, attr, code) {\r\n\t\t\treturn '<div class=\"ke-script\" data-ke-script-attr=\"' + escape(attr) + '\">' + escape(code) + '</div>';\r\n\t\t})\r\n\t\t.replace(/<noscript([^>]*)>([\\s\\S]*?)<\\/noscript>/ig, function(full, attr, code) {\r\n\t\t\treturn '<div class=\"ke-noscript\" data-ke-noscript-attr=\"' + escape(attr) + '\">' + escape(code) + '</div>';\r\n\t\t})\r\n\t\t.replace(/(<[^>]*)(href|src)=\"([^\"]*)\"([^>]*>)/ig, function(full, start, key, src, end) {\r\n\t\t\tif (full.match(/\\sdata-ke-src=\"[^\"]*\"/i)) {\r\n\t\t\t\treturn full;\r\n\t\t\t}\r\n\t\t\tfull = start + key + '=\"' + src + '\"' + ' data-ke-src=\"' + _escape(src) + '\"' + end;\r\n\t\t\treturn full;\r\n\t\t})\r\n\t\t.replace(/(<[^>]+\\s)(on\\w+=\"[^\"]*\"[^>]*>)/ig, function(full, start, end) {\r\n\t\t\treturn start + 'data-ke-' + end;\r\n\t\t})\r\n\t\t.replace(/<table[^>]*\\s+border=\"0\"[^>]*>/ig, function(full) {\r\n\t\t\tif (full.indexOf('ke-zeroborder') >= 0) {\r\n\t\t\t\treturn full;\r\n\t\t\t}\r\n\t\t\treturn _addClassToTag(full, 'ke-zeroborder');\r\n\t\t});\r\n\t});\r\n});\r\n\n\r\n})(window);\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.lang({\r\n\tsource : 'HTML代码',\r\n\tpreview : '预览',\r\n\tundo : '后退(Ctrl+Z)',\r\n\tredo : '前进(Ctrl+Y)',\r\n\tcut : '剪切(Ctrl+X)',\r\n\tcopy : '复制(Ctrl+C)',\r\n\tpaste : '粘贴(Ctrl+V)',\r\n\tplainpaste : '粘贴为无格式文本',\r\n\twordpaste : '从Word粘贴',\r\n\tselectall : '全选(Ctrl+A)',\r\n\tjustifyleft : '左对齐',\r\n\tjustifycenter : '居中',\r\n\tjustifyright : '右对齐',\r\n\tjustifyfull : '两端对齐',\r\n\tinsertorderedlist : '编号',\r\n\tinsertunorderedlist : '项目符号',\r\n\tindent : '增加缩进',\r\n\toutdent : '减少缩进',\r\n\tsubscript : '下标',\r\n\tsuperscript : '上标',\r\n\tformatblock : '段落',\r\n\tfontname : '字体',\r\n\tfontsize : '文字大小',\r\n\tforecolor : '文字颜色',\r\n\thilitecolor : '文字背景',\r\n\tbold : '粗体(Ctrl+B)',\r\n\titalic : '斜体(Ctrl+I)',\r\n\tunderline : '下划线(Ctrl+U)',\r\n\tstrikethrough : '删除线',\r\n\tremoveformat : '删除格式',\r\n\timage : '图片',\r\n\tuploadImage : '插入图片',\r\n\tmultiimage : '批量图片上传',\r\n\tflash : 'Flash',\r\n\tmedia : '视音频',\r\n\ttable : '表格',\r\n\ttablecell : '单元格',\r\n\thr : '插入横线',\r\n\temoticons : '插入表情',\r\n\tlink : '超级链接',\r\n\tunlink : '取消超级链接',\r\n\tfullscreen : '全屏显示',\r\n\tabout : '关于',\r\n\tprint : '打印(Ctrl+P)',\r\n\tfilemanager : '文件空间',\r\n\tcode : '插入程序代码',\r\n\tmap : 'Google地图',\r\n\tbaidumap : '百度地图',\r\n\tlineheight : '行距',\r\n\tclearhtml : '清理HTML代码',\r\n\tpagebreak : '插入分页符',\r\n\tquickformat : '一键排版',\r\n\tinsertfile : '插入文件',\r\n\ttemplate : '插入模板',\r\n\tanchor : '锚点',\r\n\tyes : '确定',\r\n\tno : '取消',\r\n\tclose : '关闭',\r\n\teditImage : '图片属性',\r\n\tdeleteImage : '删除图片',\r\n\teditFlash : 'Flash属性',\r\n\tdeleteFlash : '删除Flash',\r\n\teditMedia : '视音频属性',\r\n\tdeleteMedia : '删除视音频',\r\n\teditLink : '超级链接属性',\r\n\tdeleteLink : '取消超级链接',\r\n\teditAnchor : '锚点属性',\r\n\tdeleteAnchor : '删除锚点',\r\n\ttableprop : '表格属性',\r\n\ttablecellprop : '单元格属性',\r\n\ttableinsert : '插入表格',\r\n\ttabledelete : '删除表格',\r\n\ttablecolinsertleft : '左侧插入列',\r\n\ttablecolinsertright : '右侧插入列',\r\n\ttablerowinsertabove : '上方插入行',\r\n\ttablerowinsertbelow : '下方插入行',\r\n\ttablerowmerge : '向下合并单元格',\r\n\ttablecolmerge : '向右合并单元格',\r\n\ttablerowsplit : '拆分行',\r\n\ttablecolsplit : '拆分列',\r\n\ttablecoldelete : '删除列',\r\n\ttablerowdelete : '删除行',\r\n\tnoColor : '无颜色',\r\n\tpleaseSelectFile : '请选择文件。',\r\n\tinvalidImg : \"请输入有效的URL地址。\\n只允许jpg,gif,bmp,png格式。\",\r\n\tinvalidMedia : \"请输入有效的URL地址。\\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。\",\r\n\tinvalidWidth : \"宽度必须为数字。\",\r\n\tinvalidHeight : \"高度必须为数字。\",\r\n\tinvalidBorder : \"边框必须为数字。\",\r\n\tinvalidUrl : \"请输入有效的URL地址。\",\r\n\tinvalidRows : '行数为必选项,只允许输入大于0的数字。',\r\n\tinvalidCols : '列数为必选项,只允许输入大于0的数字。',\r\n\tinvalidPadding : '边距必须为数字。',\r\n\tinvalidSpacing : '间距必须为数字。',\r\n\tinvalidJson : '服务器发生故障。',\r\n\tuploadSuccess : '上传成功。',\r\n\tcutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',\r\n\tcopyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',\r\n\tpasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',\r\n\tajaxLoading : '加载中,请稍候 ...',\r\n\tuploadLoading : '上传中,请稍候 ...',\r\n\tuploadError : '上传错误',\r\n\t'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',\r\n\t'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',\r\n\t'code.pleaseInput' : '请输入程序代码。',\r\n\t'link.url' : 'URL',\r\n\t'link.linkType' : '打开类型',\r\n\t'link.newWindow' : '新窗口',\r\n\t'link.selfWindow' : '当前窗口',\r\n\t'flash.url' : 'URL',\r\n\t'flash.width' : '宽度',\r\n\t'flash.height' : '高度',\r\n\t'flash.upload' : '上传',\r\n\t'flash.viewServer' : '文件空间',\r\n\t'media.url' : 'URL',\r\n\t'media.width' : '宽度',\r\n\t'media.height' : '高度',\r\n\t'media.autostart' : '自动播放',\r\n\t'media.upload' : '上传',\r\n\t'media.viewServer' : '文件空间',\r\n\t'image.remoteImage' : '网络图片',\r\n\t'image.localImage' : '本地上传',\r\n\t'image.remoteUrl' : '图片地址',\r\n\t'image.localUrl' : '上传文件',\r\n\t'image.size' : '图片大小',\r\n\t'image.width' : '宽',\r\n\t'image.height' : '高',\r\n\t'image.resetSize' : '重置大小',\r\n\t'image.align' : '对齐方式',\r\n\t'image.defaultAlign' : '默认方式',\r\n\t'image.leftAlign' : '左对齐',\r\n\t'image.rightAlign' : '右对齐',\r\n\t'image.imgTitle' : '图片说明',\r\n\t'image.upload' : '浏览...',\r\n\t'image.viewServer' : '本地上传',\r\n\t'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',\r\n\t'multiimage.startUpload' : '开始上传',\r\n\t'multiimage.clearAll' : '全部清空',\r\n\t'multiimage.insertAll' : '全部插入',\r\n\t'multiimage.queueLimitExceeded' : '文件数量超过限制。',\r\n\t'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',\r\n\t'multiimage.zeroByteFile' : '无法上传空文件。',\r\n\t'multiimage.invalidFiletype' : '文件类型不正确。',\r\n\t'multiimage.unknownError' : '发生异常,无法上传。',\r\n\t'multiimage.pending' : '等待上传',\r\n\t'multiimage.uploadError' : '上传失败',\r\n\t'filemanager.emptyFolder' : '空文件夹',\r\n\t'filemanager.moveup' : '移到上一级文件夹',\r\n\t'filemanager.viewType' : '显示方式:',\r\n\t'filemanager.viewImage' : '缩略图',\r\n\t'filemanager.listImage' : '详细信息',\r\n\t'filemanager.orderType' : '排序方式:',\r\n\t'filemanager.fileName' : '名称',\r\n\t'filemanager.fileSize' : '大小',\r\n\t'filemanager.fileType' : '类型',\r\n\t'insertfile.url' : 'URL',\r\n\t'insertfile.title' : '文件说明',\r\n\t'insertfile.upload' : '上传',\r\n\t'insertfile.viewServer' : '文件空间',\r\n\t'table.cells' : '单元格数',\r\n\t'table.rows' : '行数',\r\n\t'table.cols' : '列数',\r\n\t'table.size' : '大小',\r\n\t'table.width' : '宽度',\r\n\t'table.height' : '高度',\r\n\t'table.percent' : '%',\r\n\t'table.px' : 'px',\r\n\t'table.space' : '边距间距',\r\n\t'table.padding' : '边距',\r\n\t'table.spacing' : '间距',\r\n\t'table.align' : '对齐方式',\r\n\t'table.textAlign' : '水平对齐',\r\n\t'table.verticalAlign' : '垂直对齐',\r\n\t'table.alignDefault' : '默认',\r\n\t'table.alignLeft' : '左对齐',\r\n\t'table.alignCenter' : '居中',\r\n\t'table.alignRight' : '右对齐',\r\n\t'table.alignTop' : '顶部',\r\n\t'table.alignMiddle' : '中部',\r\n\t'table.alignBottom' : '底部',\r\n\t'table.alignBaseline' : '基线',\r\n\t'table.border' : '边框',\r\n\t'table.borderWidth' : '边框',\r\n\t'table.borderColor' : '颜色',\r\n\t'table.backgroundColor' : '背景颜色',\r\n\t'map.address' : '地址: ',\r\n\t'map.search' : '搜索',\r\n\t'baidumap.address' : '地址: ',\r\n\t'baidumap.search' : '搜索',\r\n\t'baidumap.insertDynamicMap' : '插入动态地图',\r\n\t'anchor.name' : '锚点名称',\r\n\t'formatblock.formatBlock' : {\r\n\t\th1 : '标题 1',\r\n\t\th2 : '标题 2',\r\n\t\th3 : '标题 3',\r\n\t\th4 : '标题 4',\r\n\t\tp : '正 文'\r\n\t},\r\n\t'fontname.fontName' : {\r\n\t\t'SimSun' : '宋体',\r\n\t\t'NSimSun' : '新宋体',\r\n\t\t'FangSong_GB2312' : '仿宋_GB2312',\r\n\t\t'KaiTi_GB2312' : '楷体_GB2312',\r\n\t\t'SimHei' : '黑体',\r\n\t\t'Microsoft YaHei' : '微软雅黑',\r\n\t\t'Arial' : 'Arial',\r\n\t\t'Arial Black' : 'Arial Black',\r\n\t\t'Times New Roman' : 'Times New Roman',\r\n\t\t'Courier New' : 'Courier New',\r\n\t\t'Tahoma' : 'Tahoma',\r\n\t\t'Verdana' : 'Verdana'\r\n\t},\r\n\t'lineheight.lineHeight' : [\r\n\t\t{'1' : '单倍行距'},\r\n\t\t{'1.5' : '1.5倍行距'},\r\n\t\t{'2' : '2倍行距'},\r\n\t\t{'2.5' : '2.5倍行距'},\r\n\t\t{'3' : '3倍行距'}\r\n\t],\r\n\t'template.selectTemplate' : '可选模板',\r\n\t'template.replaceContent' : '替换当前内容',\r\n\t'template.fileList' : {\r\n\t\t'1.html' : '图片和文字',\r\n\t\t'2.html' : '表格',\r\n\t\t'3.html' : '项目编号'\r\n\t}\r\n}, 'zh-CN');\r\nKindEditor.options.langType = 'zh-CN';\n/*******************************************************************************\n* KindEditor - WYSIWYG HTML Editor for Internet\n* Copyright (C) 2006-2011 kindsoft.net\n*\n* @author Roddy <luolonghao@gmail.com>\n* @site http://www.kindsoft.net/\n* @licence http://www.kindsoft.net/license.php\n*******************************************************************************/\nKindEditor.plugin('anchor', function(K) {\n\tvar self = this, name = 'anchor', lang = self.lang(name + '.');\n\tself.plugin.anchor = {\n\t\tedit : function() {\n\t\t\tvar html = ['<div style=\"padding:20px;\">',\n\t\t\t\t\t'<div class=\"ke-dialog-row\">',\n\t\t\t\t\t'<label for=\"keName\">' + lang.name + '</label>',\n\t\t\t\t\t'<input class=\"ke-input-text\" type=\"text\" id=\"keName\" name=\"name\" value=\"\" style=\"width:100px;\" />',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'</div>'].join('');\n\t\t\tvar dialog = self.createDialog({\n\t\t\t\tname : name,\n\t\t\t\twidth : 300,\n\t\t\t\ttitle : self.lang(name),\n\t\t\t\tbody : html,\n\t\t\t\tyesBtn : {\n\t\t\t\t\tname : self.lang('yes'),\n\t\t\t\t\tclick : function(e) {\n\t\t\t\t\t\tself.insertHtml('<a name=\"' + nameBox.val() + '\">').hideDialog().focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar div = dialog.div,\n\t\t\t\tnameBox = K('input[name=\"name\"]', div);\n\t\t\tvar img = self.plugin.getSelectedAnchor();\n\t\t\tif (img) {\n\t\t\t\tnameBox.val(unescape(img.attr('data-ke-name')));\n\t\t\t}\n\t\t\tnameBox[0].focus();\n\t\t\tnameBox[0].select();\n\t\t},\n\t\t'delete' : function() {\n\t\t\tself.plugin.getSelectedAnchor().remove();\n\t\t}\n\t};\n\tself.clickToolbar(name, self.plugin.anchor.edit);\n});\n\n/*******************************************************************************\n* KindEditor - WYSIWYG HTML Editor for Internet\n* Copyright (C) 2006-2011 kindsoft.net\n*\n* @author Roddy <luolonghao@gmail.com>\n* @site http://www.kindsoft.net/\n* @licence http://www.kindsoft.net/license.php\n*******************************************************************************/\nKindEditor.plugin('autoheight', function(K) {\n\tvar self = this;\n\tif (!self.autoHeightMode) {\n\t\treturn;\n\t}\n\tvar minHeight;\n\tfunction hideScroll() {\n\t\tvar edit = self.edit;\n\t\tvar body = edit.doc.body;\n\t\tedit.iframe[0].scroll = 'no';\n\t\tbody.style.overflowY = 'hidden';\n\t}\n\tfunction resetHeight() {\n\t\tvar edit = self.edit;\n\t\tvar body = edit.doc.body;\n\t\tedit.iframe.height(minHeight);\n\t\tself.resize(null, Math.max((K.IE ? body.scrollHeight : body.offsetHeight) + 76, minHeight));\n\t}\n\tfunction init() {\n\t\tminHeight = K.removeUnit(self.height);\n\t\tself.edit.afterChange(resetHeight);\n\t\thideScroll();\n\t\tresetHeight();\n\t}\n\tif (self.isCreated) {\n\t\tinit();\n\t} else {\n\t\tself.afterCreate(init);\n\t}\n});\n/*\n* 如何实现真正的自动高度?\n* 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。\n* 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。\n* 由此就实现了真正的自动高度\n* 测试:chrome、firefox、IE9、IE8\n* */\n\n/*******************************************************************************\n* KindEditor - WYSIWYG HTML Editor for Internet\n* Copyright (C) 2006-2011 kindsoft.net\n*\n* @author Roddy <luolonghao@gmail.com>\n* @site http://www.kindsoft.net/\n* @licence http://www.kindsoft.net/license.php\n*******************************************************************************/\nKindEditor.plugin('baidumap', function(K) {\n\tvar self = this, name = 'baidumap', lang = self.lang(name + '.');\n\tvar mapWidth = K.undef(self.mapWidth, 558);\n\tvar mapHeight = K.undef(self.mapHeight, 360);\n\tself.clickToolbar(name, function() {\n\t\tvar html = ['<div style=\"padding:10px 20px;\">',\n\t\t\t'<div class=\"ke-header\">',\n\t\t\t'<div class=\"ke-left\">',\n\t\t\tlang.address + ' <input id=\"kindeditor_plugin_map_address\" name=\"address\" class=\"ke-input-text\" value=\"\" style=\"width:200px;\" /> ',\n\t\t\t'<span class=\"ke-button-common ke-button-outer\">',\n\t\t\t'<input type=\"button\" name=\"searchBtn\" class=\"ke-button-common ke-button\" value=\"' + lang.search + '\" />',\n\t\t\t'</span>',\n\t\t\t'</div>',\n\t\t\t'<div class=\"ke-right\">',\n\t\t\t'<input type=\"checkbox\" id=\"keInsertDynamicMap\" name=\"insertDynamicMap\" value=\"1\" /> <label for=\"keInsertDynamicMap\">' + lang.insertDynamicMap + '</label>',\n\t\t\t'</div>',\n\t\t\t'<div class=\"ke-clearfix\"></div>',\n\t\t\t'</div>',\n\t\t\t'<div class=\"ke-map\" style=\"width:' + mapWidth + 'px;height:' + mapHeight + 'px;\"></div>',\n\t\t\t'</div>'].join('');\n\t\tvar dialog = self.createDialog({\n\t\t\tname : name,\n\t\t\twidth : mapWidth + 42,\n\t\t\ttitle : self.lang(name),\n\t\t\tbody : html,\n\t\t\tyesBtn : {\n\t\t\t\tname : self.lang('yes'),\n\t\t\t\tclick : function(e) {\n\t\t\t\t\tvar map = win.map;\n\t\t\t\t\tvar centerObj = map.getCenter();\n\t\t\t\t\tvar center = centerObj.lng + ',' + centerObj.lat;\n\t\t\t\t\tvar zoom = map.getZoom();\n\t\t\t\t\tvar url = [checkbox[0].checked ? self.pluginsPath + 'baidumap/index.html' : 'http://api.map.baidu.com/staticimage',\n\t\t\t\t\t\t'?center=' + encodeURIComponent(center),\n\t\t\t\t\t\t'&zoom=' + encodeURIComponent(zoom),\n\t\t\t\t\t\t'&width=' + mapWidth,\n\t\t\t\t\t\t'&height=' + mapHeight,\n\t\t\t\t\t\t'&markers=' + encodeURIComponent(center),\n\t\t\t\t\t\t'&markerStyles=' + encodeURIComponent('l,A')].join('');\n\t\t\t\t\tif (checkbox[0].checked) {\n\t\t\t\t\t\tself.insertHtml('<iframe src=\"' + url + '\" frameborder=\"0\" style=\"width:' + (mapWidth + 2) + 'px;height:' + (mapHeight + 2) + 'px;\"></iframe>');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.exec('insertimage', url);\n\t\t\t\t\t}\n\t\t\t\t\tself.hideDialog().focus();\n\t\t\t\t}\n\t\t\t},\n\t\t\tbeforeRemove : function() {\n\t\t\t\tsearchBtn.remove();\n\t\t\t\tif (doc) {\n\t\t\t\t\tdoc.write('');\n\t\t\t\t}\n\t\t\t\tiframe.remove();\n\t\t\t}\n\t\t});\n\t\tvar div = dialog.div,\n\t\t\taddressBox = K('[name=\"address\"]', div),\n\t\t\tsearchBtn = K('[name=\"searchBtn\"]', div),\n\t\t\tcheckbox = K('[name=\"insertDynamicMap\"]', dialog.div),\n\t\t\twin, doc;\n\t\tvar iframe = K('<iframe class=\"ke-textarea\" frameborder=\"0\" src=\"' + self.pluginsPath + 'baidumap/map.html\" style=\"width:' + mapWidth + 'px;height:' + mapHeight + 'px;\"></iframe>');\n\t\tfunction ready() {\n\t\t\twin = iframe[0].contentWindow;\n\t\t\tdoc = K.iframeDoc(iframe);\n\t\t}\n\t\tiframe.bind('load', function() {\n\t\t\tiframe.unbind('load');\n\t\t\tif (K.IE) {\n\t\t\t\tready();\n\t\t\t} else {\n\t\t\t\tsetTimeout(ready, 0);\n\t\t\t}\n\t\t});\n\t\tK('.ke-map', div).replaceWith(iframe);\n\t\tsearchBtn.click(function() {\n\t\t\twin.search(addressBox.val());\n\t\t});\n\t});\n});\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\n\r\r\nKindEditor.plugin('map', function(K) {\r\n\tvar self = this, name = 'map', lang = self.lang(name + '.');\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar html = ['<div style=\"padding:10px 20px;\">',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\tlang.address + ' <input id=\"kindeditor_plugin_map_address\" name=\"address\" class=\"ke-input-text\" value=\"\" style=\"width:200px;\" /> ',\r\n\t\t\t'<span class=\"ke-button-common ke-button-outer\">',\r\n\t\t\t'<input type=\"button\" name=\"searchBtn\" class=\"ke-button-common ke-button\" value=\"' + lang.search + '\" />',\r\n\t\t\t'</span>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-map\" style=\"width:558px;height:360px;\"></div>',\r\n\t\t\t'</div>'].join('');\r\n\t\tvar dialog = self.createDialog({\r\n\t\t\tname : name,\r\n\t\t\twidth : 600,\r\n\t\t\ttitle : self.lang(name),\r\n\t\t\tbody : html,\r\n\t\t\tyesBtn : {\r\n\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\tclick : function(e) {\r\n\t\t\t\t\tvar geocoder = win.geocoder,\r\n\t\t\t\t\t\tmap = win.map,\r\n\t\t\t\t\t\tcenter = map.getCenter().lat() + ',' + map.getCenter().lng(),\r\n\t\t\t\t\t\tzoom = map.getZoom(),\r\n\t\t\t\t\t\tmaptype = map.getMapTypeId(),\r\n\t\t\t\t\t\turl = 'http://maps.googleapis.com/maps/api/staticmap';\r\n\t\t\t\t\t\turl += '?center=' + encodeURIComponent(center);\r\n\t\t\t\t\t\turl += '&zoom=' + encodeURIComponent(zoom);\r\n\t\t\t\t\t\turl += '&size=558x360';\r\n\t\t\t\t\t\turl += '&maptype=' + encodeURIComponent(maptype);\r\n\t\t\t\t\t\turl += '&markers=' + encodeURIComponent(center);\r\n\t\t\t\t\t\turl += '&language=' + self.langType;\r\n\t\t\t\t\t\turl += '&sensor=false';\r\n\t\t\t\t\tself.exec('insertimage', url).hideDialog().focus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbeforeRemove : function() {\r\n\t\t\t\tsearchBtn.remove();\r\n\t\t\t\tif (doc) {\r\n\t\t\t\t\tdoc.write('');\r\n\t\t\t\t}\r\n\t\t\t\tiframe.remove();\r\n\t\t\t}\r\n\t\t});\r\n\t\tvar div = dialog.div,\r\n\t\t\taddressBox = K('[name=\"address\"]', div),\r\n\t\t\tsearchBtn = K('[name=\"searchBtn\"]', div),\r\n\t\t\twin, doc;\r\n\t\tvar iframeHtml = ['<!doctype html><html><head>',\r\n\t\t\t'<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />',\r\n\t\t\t'<style>',\r\n\t\t\t'\thtml { height: 100% }',\r\n\t\t\t'\tbody { height: 100%; margin: 0; padding: 0; background-color: #FFF }',\r\n\t\t\t'\t#map_canvas { height: 100% }',\r\n\t\t\t'</style>',\r\n\t\t\t'<script src=\"http://maps.googleapis.com/maps/api/js?sensor=false&language=' + self.langType + '\"></script>',\r\n\t\t\t'<script>',\r\n\t\t\t'var map, geocoder;',\r\n\t\t\t'function initialize() {',\r\n\t\t\t'\tvar latlng = new google.maps.LatLng(31.230393, 121.473704);',\r\n\t\t\t'\tvar options = {',\r\n\t\t\t'\t\tzoom: 11,',\r\n\t\t\t'\t\tcenter: latlng,',\r\n\t\t\t'\t\tdisableDefaultUI: true,',\r\n\t\t\t'\t\tpanControl: true,',\r\n\t\t\t'\t\tzoomControl: true,',\r\n\t\t\t'\t\tmapTypeControl: true,',\r\n\t\t\t'\t\tscaleControl: true,',\r\n\t\t\t'\t\tstreetViewControl: false,',\r\n\t\t\t'\t\toverviewMapControl: true,',\r\n\t\t\t'\t\tmapTypeId: google.maps.MapTypeId.ROADMAP',\r\n\t\t\t'\t};',\r\n\t\t\t'\tmap = new google.maps.Map(document.getElementById(\"map_canvas\"), options);',\r\n\t\t\t'\tgeocoder = new google.maps.Geocoder();',\r\n\t\t\t'\tgeocoder.geocode({latLng: latlng}, function(results, status) {',\r\n\t\t\t'\t\tif (status == google.maps.GeocoderStatus.OK) {',\r\n\t\t\t'\t\t\tif (results[3]) {',\r\n\t\t\t'\t\t\t\tparent.document.getElementById(\"kindeditor_plugin_map_address\").value = results[3].formatted_address;',\r\n\t\t\t'\t\t\t}',\r\n\t\t\t'\t\t}',\r\n\t\t\t'\t});',\r\n\t\t\t'}',\r\n\t\t\t'function search(address) {',\r\n\t\t\t'\tif (!map) return;',\r\n\t\t\t'\tgeocoder.geocode({address : address}, function(results, status) {',\r\n\t\t\t'\t\tif (status == google.maps.GeocoderStatus.OK) {',\r\n\t\t\t'\t\t\tmap.setZoom(11);',\r\n\t\t\t'\t\t\tmap.setCenter(results[0].geometry.location);',\r\n\t\t\t'\t\t\tvar marker = new google.maps.Marker({',\r\n\t\t\t'\t\t\t\tmap: map,',\r\n\t\t\t'\t\t\t\tposition: results[0].geometry.location',\r\n\t\t\t'\t\t\t});',\r\n\t\t\t'\t\t} else {',\r\n\t\t\t'\t\t\talert(\"Invalid address: \" + address);',\r\n\t\t\t'\t\t}',\r\n\t\t\t'\t});',\r\n\t\t\t'}',\r\n\t\t\t'</script>',\r\n\t\t\t'</head>',\r\n\t\t\t'<body onload=\"initialize();\">',\r\n\t\t\t'<div id=\"map_canvas\" style=\"width:100%; height:100%\"></div>',\r\n\t\t\t'</body></html>'].join('\\n');\r\n\t\tvar iframe = K('<iframe class=\"ke-textarea\" frameborder=\"0\" src=\"' + self.pluginsPath + 'map/map.html\" style=\"width:558px;height:360px;\"></iframe>');\r\n\t\tfunction ready() {\r\n\t\t\twin = iframe[0].contentWindow;\r\n\t\t\tdoc = K.iframeDoc(iframe);\r\n\t\t}\r\n\t\tiframe.bind('load', function() {\r\n\t\t\tiframe.unbind('load');\r\n\t\t\tif (K.IE) {\r\n\t\t\t\tready();\r\n\t\t\t} else {\r\n\t\t\t\tsetTimeout(ready, 0);\r\n\t\t\t}\r\n\t\t});\r\n\t\tK('.ke-map', div).replaceWith(iframe);\r\n\t\tsearchBtn.click(function() {\r\n\t\t\twin.search(addressBox.val());\r\n\t\t});\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('clearhtml', function(K) {\r\n\tvar self = this, name = 'clearhtml';\r\n\tself.clickToolbar(name, function() {\r\n\t\tself.focus();\r\n\t\tvar html = self.html();\r\n\t\thtml = html.replace(/(<script[^>]*>)([\\s\\S]*?)(<\\/script>)/ig, '');\r\n\t\thtml = html.replace(/(<style[^>]*>)([\\s\\S]*?)(<\\/style>)/ig, '');\r\n\t\thtml = K.formatHtml(html, {\r\n\t\t\ta : ['href', 'target'],\r\n\t\t\tembed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'],\r\n\t\t\timg : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'],\r\n\t\t\ttable : ['border'],\r\n\t\t\t'td,th' : ['rowspan', 'colspan'],\r\n\t\t\t'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : []\r\n\t\t});\r\n\t\tself.html(html);\r\n\t\tself.cmd.selection(true);\r\n\t\tself.addBookmark();\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\n\r\r\r\nKindEditor.plugin('code', function(K) {\r\n\tvar self = this, name = 'code';\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar lang = self.lang(name + '.'),\r\n\t\t\thtml = ['<div style=\"padding:10px 20px;\">',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<select class=\"ke-code-type\">',\r\n\t\t\t\t'<option value=\"js\">JavaScript</option>',\r\n\t\t\t\t'<option value=\"html\">HTML</option>',\r\n\t\t\t\t'<option value=\"css\">CSS</option>',\r\n\t\t\t\t'<option value=\"php\">PHP</option>',\r\n\t\t\t\t'<option value=\"pl\">Perl</option>',\r\n\t\t\t\t'<option value=\"py\">Python</option>',\r\n\t\t\t\t'<option value=\"rb\">Ruby</option>',\r\n\t\t\t\t'<option value=\"java\">Java</option>',\r\n\t\t\t\t'<option value=\"vb\">ASP/VB</option>',\r\n\t\t\t\t'<option value=\"cpp\">C/C++</option>',\r\n\t\t\t\t'<option value=\"cs\">C#</option>',\r\n\t\t\t\t'<option value=\"xml\">XML</option>',\r\n\t\t\t\t'<option value=\"bsh\">Shell</option>',\r\n\t\t\t\t'<option value=\"\">Other</option>',\r\n\t\t\t\t'</select>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<textarea class=\"ke-textarea\" style=\"width:408px;height:260px;\"></textarea>',\r\n\t\t\t\t'</div>'].join(''),\r\n\t\t\tdialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 450,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar type = K('.ke-code-type', dialog.div).val(),\r\n\t\t\t\t\t\t\tcode = textarea.val(),\r\n\t\t\t\t\t\t\tcls = type === '' ? '' : ' lang-' + type,\r\n\t\t\t\t\t\t\thtml = '<pre class=\"prettyprint' + cls + '\">\\n' + K.escape(code) + '</pre> ';\r\n\t\t\t\t\t\tif (K.trim(code) === '') {\r\n\t\t\t\t\t\t\talert(lang.pleaseInput);\r\n\t\t\t\t\t\t\ttextarea[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tself.insertHtml(html).hideDialog().focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\ttextarea = K('textarea', dialog.div);\r\n\t\ttextarea[0].focus();\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('emoticons', function(K) {\r\n\tvar self = this, name = 'emoticons',\r\n\t\tpath = (self.emoticonsPath || self.pluginsPath + 'emoticons/images/'),\r\n\t\tallowPreview = self.allowPreviewEmoticons === undefined ? true : self.allowPreviewEmoticons,\r\n\t\tcurrentPageNum = 1;\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar rows = 5, cols = 9, total = 135, startNum = 0,\r\n\t\t\tcells = rows * cols, pages = Math.ceil(total / cells),\r\n\t\t\tcolsHalf = Math.floor(cols / 2),\r\n\t\t\twrapperDiv = K('<div class=\"ke-plugin-emoticons\"></div>'),\r\n\t\t\telements = [],\r\n\t\t\tmenu = self.createMenu({\r\n\t\t\t\tname : name,\r\n\t\t\t\tbeforeRemove : function() {\r\n\t\t\t\t\tremoveEvent();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tmenu.div.append(wrapperDiv);\r\n\t\tvar previewDiv, previewImg;\r\n\t\tif (allowPreview) {\r\n\t\t\tpreviewDiv = K('<div class=\"ke-preview\"></div>').css('right', 0);\r\n\t\t\tpreviewImg = K('<img class=\"ke-preview-img\" src=\"' + path + startNum + '.gif\" />');\r\n\t\t\twrapperDiv.append(previewDiv);\r\n\t\t\tpreviewDiv.append(previewImg);\r\n\t\t}\r\n\t\tfunction bindCellEvent(cell, j, num) {\r\n\t\t\tif (previewDiv) {\r\n\t\t\t\tcell.mouseover(function() {\r\n\t\t\t\t\tif (j > colsHalf) {\r\n\t\t\t\t\t\tpreviewDiv.css('left', 0);\r\n\t\t\t\t\t\tpreviewDiv.css('right', '');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpreviewDiv.css('left', '');\r\n\t\t\t\t\t\tpreviewDiv.css('right', 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpreviewImg.attr('src', path + num + '.gif');\r\n\t\t\t\t\tK(this).addClass('ke-on');\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcell.mouseover(function() {\r\n\t\t\t\t\tK(this).addClass('ke-on');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tcell.mouseout(function() {\r\n\t\t\t\tK(this).removeClass('ke-on');\r\n\t\t\t});\r\n\t\t\tcell.click(function(e) {\r\n\t\t\t\tself.insertHtml('<img src=\"' + path + num + '.gif\" border=\"0\" alt=\"\" />').hideMenu().focus();\r\n\t\t\t\te.stop();\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction createEmoticonsTable(pageNum, parentDiv) {\r\n\t\t\tvar table = document.createElement('table');\r\n\t\t\tparentDiv.append(table);\r\n\t\t\tif (previewDiv) {\r\n\t\t\t\tK(table).mouseover(function() {\r\n\t\t\t\t\tpreviewDiv.show('block');\r\n\t\t\t\t});\r\n\t\t\t\tK(table).mouseout(function() {\r\n\t\t\t\t\tpreviewDiv.hide();\r\n\t\t\t\t});\r\n\t\t\t\telements.push(K(table));\r\n\t\t\t}\r\n\t\t\ttable.className = 'ke-table';\r\n\t\t\ttable.cellPadding = 0;\r\n\t\t\ttable.cellSpacing = 0;\r\n\t\t\ttable.border = 0;\r\n\t\t\tvar num = (pageNum - 1) * cells + startNum;\r\n\t\t\tfor (var i = 0; i < rows; i++) {\r\n\t\t\t\tvar row = table.insertRow(i);\r\n\t\t\t\tfor (var j = 0; j < cols; j++) {\r\n\t\t\t\t\tvar cell = K(row.insertCell(j));\r\n\t\t\t\t\tcell.addClass('ke-cell');\r\n\t\t\t\t\tbindCellEvent(cell, j, num);\r\n\t\t\t\t\tvar span = K('<span class=\"ke-img\"></span>')\r\n\t\t\t\t\t\t.css('background-position', '-' + (24 * num) + 'px 0px')\r\n\t\t\t\t\t\t.css('background-image', 'url(' + path + 'static.gif)');\r\n\t\t\t\t\tcell.append(span);\r\n\t\t\t\t\telements.push(cell);\r\n\t\t\t\t\tnum++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn table;\r\n\t\t}\r\n\t\tvar table = createEmoticonsTable(currentPageNum, wrapperDiv);\r\n\t\tfunction removeEvent() {\r\n\t\t\tK.each(elements, function() {\r\n\t\t\t\tthis.unbind();\r\n\t\t\t});\r\n\t\t}\r\n\t\tvar pageDiv;\r\n\t\tfunction bindPageEvent(el, pageNum) {\r\n\t\t\tel.click(function(e) {\r\n\t\t\t\tremoveEvent();\r\n\t\t\t\ttable.parentNode.removeChild(table);\r\n\t\t\t\tpageDiv.remove();\r\n\t\t\t\ttable = createEmoticonsTable(pageNum, wrapperDiv);\r\n\t\t\t\tcreatePageTable(pageNum);\r\n\t\t\t\tcurrentPageNum = pageNum;\r\n\t\t\t\te.stop();\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction createPageTable(currentPageNum) {\r\n\t\t\tpageDiv = K('<div class=\"ke-page\"></div>');\r\n\t\t\twrapperDiv.append(pageDiv);\r\n\t\t\tfor (var pageNum = 1; pageNum <= pages; pageNum++) {\r\n\t\t\t\tif (currentPageNum !== pageNum) {\r\n\t\t\t\t\tvar a = K('<a href=\"javascript:;\">[' + pageNum + ']</a>');\r\n\t\t\t\t\tbindPageEvent(a, pageNum);\r\n\t\t\t\t\tpageDiv.append(a);\r\n\t\t\t\t\telements.push(a);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpageDiv.append(K('@[' + pageNum + ']'));\r\n\t\t\t\t}\r\n\t\t\t\tpageDiv.append(K('@ '));\r\n\t\t\t}\r\n\t\t}\r\n\t\tcreatePageTable(currentPageNum);\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('filemanager', function(K) {\r\n\tvar self = this, name = 'filemanager',\r\n\t\tfileManagerJson = K.undef(self.fileManagerJson, self.basePath + 'php/file_manager_json.php'),\r\n\t\timgPath = self.pluginsPath + name + '/images/',\r\n\t\tlang = self.lang(name + '.');\r\n\tfunction makeFileTitle(filename, filesize, datetime) {\r\n\t\treturn filename + ' (' + Math.ceil(filesize / 1024) + 'KB, ' + datetime + ')';\r\n\t}\r\n\tfunction bindTitle(el, data) {\r\n\t\tif (data.is_dir) {\r\n\t\t\tel.attr('title', data.filename);\r\n\t\t} else {\r\n\t\t\tel.attr('title', makeFileTitle(data.filename, data.filesize, data.datetime));\r\n\t\t}\r\n\t}\r\n\tself.plugin.filemanagerDialog = function(options) {\r\n\t\tvar width = K.undef(options.width, 650),\r\n\t\t\theight = K.undef(options.height, 510),\r\n\t\t\tdirName = K.undef(options.dirName, ''),\r\n\t\t\tviewType = K.undef(options.viewType, 'VIEW').toUpperCase(),\r\n\t\t\tclickFn = options.clickFn;\r\n\t\tvar html = [\r\n\t\t\t'<div style=\"padding:10px 20px;\">',\r\n\t\t\t'<div class=\"ke-plugin-filemanager-header\">',\r\n\t\t\t'<div class=\"ke-left\">',\r\n\t\t\t'<img class=\"ke-inline-block\" name=\"moveupImg\" src=\"' + imgPath + 'go-up.gif\" width=\"16\" height=\"16\" border=\"0\" alt=\"\" /> ',\r\n\t\t\t'<a class=\"ke-inline-block\" name=\"moveupLink\" href=\"javascript:;\">' + lang.moveup + '</a>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-right\">',\r\n\t\t\tlang.viewType + ' <select class=\"ke-inline-block\" name=\"viewType\">',\r\n\t\t\t'<option value=\"VIEW\">' + lang.viewImage + '</option>',\r\n\t\t\t'<option value=\"LIST\">' + lang.listImage + '</option>',\r\n\t\t\t'</select> ',\r\n\t\t\tlang.orderType + ' <select class=\"ke-inline-block\" name=\"orderType\">',\r\n\t\t\t'<option value=\"NAME\">' + lang.fileName + '</option>',\r\n\t\t\t'<option value=\"SIZE\">' + lang.fileSize + '</option>',\r\n\t\t\t'<option value=\"TYPE\">' + lang.fileType + '</option>',\r\n\t\t\t'</select>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-clearfix\"></div>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-plugin-filemanager-body\"></div>',\r\n\t\t\t'</div>'\r\n\t\t].join('');\r\n\t\tvar dialog = self.createDialog({\r\n\t\t\tname : name,\r\n\t\t\twidth : width,\r\n\t\t\theight : height,\r\n\t\t\ttitle : self.lang(name),\r\n\t\t\tbody : html\r\n\t\t}),\r\n\t\tdiv = dialog.div,\r\n\t\tbodyDiv = K('.ke-plugin-filemanager-body', div),\r\n\t\tmoveupImg = K('[name=\"moveupImg\"]', div),\r\n\t\tmoveupLink = K('[name=\"moveupLink\"]', div),\r\n\t\tviewServerBtn = K('[name=\"viewServer\"]', div),\r\n\t\tviewTypeBox = K('[name=\"viewType\"]', div),\r\n\t\torderTypeBox = K('[name=\"orderType\"]', div);\r\n\t\tfunction reloadPage(path, order, func) {\r\n\t\t\tvar param = 'path=' + path + '&order=' + order + '&dir=' + dirName;\r\n\t\t\tdialog.showLoading(self.lang('ajaxLoading'));\r\n\t\t\tK.ajax(K.addParam(fileManagerJson, param + '&' + new Date().getTime()), function(data) {\r\n\t\t\t\tdialog.hideLoading();\r\n\t\t\t\tfunc(data);\r\n\t\t\t});\r\n\t\t}\r\n\t\tvar elList = [];\r\n\t\tfunction bindEvent(el, result, data, createFunc) {\r\n\t\t\tvar fileUrl = K.formatUrl(result.current_url + data.filename, 'absolute'),\r\n\t\t\t\tdirPath = encodeURIComponent(result.current_dir_path + data.filename + '/');\r\n\t\t\tif (data.is_dir) {\r\n\t\t\t\tel.click(function(e) {\r\n\t\t\t\t\treloadPage(dirPath, orderTypeBox.val(), createFunc);\r\n\t\t\t\t});\r\n\t\t\t} else if (data.is_photo) {\r\n\t\t\t\tel.click(function(e) {\r\n\t\t\t\t\tclickFn.call(this, fileUrl, data.filename);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tel.click(function(e) {\r\n\t\t\t\t\tclickFn.call(this, fileUrl, data.filename);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telList.push(el);\r\n\t\t}\r\n\t\tfunction createCommon(result, createFunc) {\r\n\t\t\tK.each(elList, function() {\r\n\t\t\t\tthis.unbind();\r\n\t\t\t});\r\n\t\t\tmoveupLink.unbind();\r\n\t\t\tviewTypeBox.unbind();\r\n\t\t\torderTypeBox.unbind();\r\n\t\t\tif (result.current_dir_path) {\r\n\t\t\t\tmoveupLink.click(function(e) {\r\n\t\t\t\t\treloadPage(result.moveup_dir_path, orderTypeBox.val(), createFunc);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfunction changeFunc() {\r\n\t\t\t\tif (viewTypeBox.val() == 'VIEW') {\r\n\t\t\t\t\treloadPage(result.current_dir_path, orderTypeBox.val(), createView);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treloadPage(result.current_dir_path, orderTypeBox.val(), createList);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tviewTypeBox.change(changeFunc);\r\n\t\t\torderTypeBox.change(changeFunc);\r\n\t\t\tbodyDiv.html('');\r\n\t\t}\r\n\t\tfunction createList(result) {\r\n\t\t\tcreateCommon(result, createList);\r\n\t\t\tvar table = document.createElement('table');\r\n\t\t\ttable.className = 'ke-table';\r\n\t\t\ttable.cellPadding = 0;\r\n\t\t\ttable.cellSpacing = 0;\r\n\t\t\ttable.border = 0;\r\n\t\t\tbodyDiv.append(table);\r\n\t\t\tvar fileList = result.file_list;\r\n\t\t\tfor (var i = 0, len = fileList.length; i < len; i++) {\r\n\t\t\t\tvar data = fileList[i], row = K(table.insertRow(i));\r\n\t\t\t\trow.mouseover(function(e) {\r\n\t\t\t\t\tK(this).addClass('ke-on');\r\n\t\t\t\t})\r\n\t\t\t\t.mouseout(function(e) {\r\n\t\t\t\t\tK(this).removeClass('ke-on');\r\n\t\t\t\t});\r\n\t\t\t\tvar iconUrl = imgPath + (data.is_dir ? 'folder-16.gif' : 'file-16.gif'),\r\n\t\t\t\t\timg = K('<img src=\"' + iconUrl + '\" width=\"16\" height=\"16\" alt=\"' + data.filename + '\" align=\"absmiddle\" />'),\r\n\t\t\t\t\tcell0 = K(row[0].insertCell(0)).addClass('ke-cell ke-name').append(img).append(document.createTextNode(' ' + data.filename));\r\n\t\t\t\tif (!data.is_dir || data.has_file) {\r\n\t\t\t\t\trow.css('cursor', 'pointer');\r\n\t\t\t\t\tcell0.attr('title', data.filename);\r\n\t\t\t\t\tbindEvent(cell0, result, data, createList);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcell0.attr('title', lang.emptyFolder);\r\n\t\t\t\t}\r\n\t\t\t\tK(row[0].insertCell(1)).addClass('ke-cell ke-size').html(data.is_dir ? '-' : Math.ceil(data.filesize / 1024) + 'KB');\r\n\t\t\t\tK(row[0].insertCell(2)).addClass('ke-cell ke-datetime').html(data.datetime);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction createView(result) {\r\n\t\t\tcreateCommon(result, createView);\r\n\t\t\tvar fileList = result.file_list;\r\n\t\t\tfor (var i = 0, len = fileList.length; i < len; i++) {\r\n\t\t\t\tvar data = fileList[i],\r\n\t\t\t\t\tdiv = K('<div class=\"ke-inline-block ke-item\"></div>');\r\n\t\t\t\tbodyDiv.append(div);\r\n\t\t\t\tvar photoDiv = K('<div class=\"ke-inline-block ke-photo\"></div>')\r\n\t\t\t\t\t.mouseover(function(e) {\r\n\t\t\t\t\t\tK(this).addClass('ke-on');\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.mouseout(function(e) {\r\n\t\t\t\t\t\tK(this).removeClass('ke-on');\r\n\t\t\t\t\t});\r\n\t\t\t\tdiv.append(photoDiv);\r\n\t\t\t\tvar fileUrl = result.current_url + data.filename,\r\n\t\t\t\t\ticonUrl = data.is_dir ? imgPath + 'folder-64.gif' : (data.is_photo ? fileUrl : imgPath + 'file-64.gif');\r\n\t\t\t\tvar img = K('<img src=\"' + iconUrl + '\" width=\"80\" height=\"80\" alt=\"' + data.filename + '\" />');\r\n\t\t\t\tif (!data.is_dir || data.has_file) {\r\n\t\t\t\t\tphotoDiv.css('cursor', 'pointer');\r\n\t\t\t\t\tbindTitle(photoDiv, data);\r\n\t\t\t\t\tbindEvent(photoDiv, result, data, createView);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tphotoDiv.attr('title', lang.emptyFolder);\r\n\t\t\t\t}\r\n\t\t\t\tphotoDiv.append(img);\r\n\t\t\t\tdiv.append('<div class=\"ke-name\" title=\"' + data.filename + '\">' + data.filename + '</div>');\r\n\t\t\t}\r\n\t\t}\r\n\t\tviewTypeBox.val(viewType);\r\n\t\treloadPage('', orderTypeBox.val(), viewType == 'VIEW' ? createView : createList);\r\n\t\treturn dialog;\r\n\t}\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('flash', function(K) {\r\n\tvar self = this, name = 'flash', lang = self.lang(name + '.'),\r\n\t\tallowFlashUpload = K.undef(self.allowFlashUpload, true),\r\n\t\tallowFileManager = K.undef(self.allowFileManager, false),\r\n\t\tformatUploadUrl = K.undef(self.formatUploadUrl, true),\r\n\t\textraParams = K.undef(self.extraFileUploadParams, {}),\r\n\t\tfilePostName = K.undef(self.filePostName, 'imgFile'),\r\n\t\tuploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php');\r\n\tself.plugin.flash = {\r\n\t\tedit : function() {\r\n\t\t\tvar html = [\r\n\t\t\t\t'<div style=\"padding:20px;\">',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keUrl\" style=\"width:60px;\">' + lang.url + '</label>',\r\n\t\t\t\t'<input class=\"ke-input-text\" type=\"text\" id=\"keUrl\" name=\"url\" value=\"\" style=\"width:160px;\" /> ',\r\n\t\t\t\t'<input type=\"button\" class=\"ke-upload-button\" value=\"' + lang.upload + '\" /> ',\r\n\t\t\t\t'<span class=\"ke-button-common ke-button-outer\">',\r\n\t\t\t\t'<input type=\"button\" class=\"ke-button-common ke-button\" name=\"viewServer\" value=\"' + lang.viewServer + '\" />',\r\n\t\t\t\t'</span>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keWidth\" style=\"width:60px;\">' + lang.width + '</label>',\r\n\t\t\t\t'<input type=\"text\" id=\"keWidth\" class=\"ke-input-text ke-input-number\" name=\"width\" value=\"550\" maxlength=\"4\" /> ',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keHeight\" style=\"width:60px;\">' + lang.height + '</label>',\r\n\t\t\t\t'<input type=\"text\" id=\"keHeight\" class=\"ke-input-text ke-input-number\" name=\"height\" value=\"400\" maxlength=\"4\" /> ',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'</div>'\r\n\t\t\t].join('');\r\n\t\t\tvar dialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 450,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar url = K.trim(urlBox.val()),\r\n\t\t\t\t\t\t\twidth = widthBox.val(),\r\n\t\t\t\t\t\t\theight = heightBox.val();\r\n\t\t\t\t\t\tif (url == 'http://' || K.invalidUrl(url)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidUrl'));\r\n\t\t\t\t\t\t\turlBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(width)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidWidth'));\r\n\t\t\t\t\t\t\twidthBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(height)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidHeight'));\r\n\t\t\t\t\t\t\theightBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar html = K.mediaImg(self.themesPath + 'common/blank.gif', {\r\n\t\t\t\t\t\t\t\tsrc : url,\r\n\t\t\t\t\t\t\t\ttype : K.mediaType('.swf'),\r\n\t\t\t\t\t\t\t\twidth : width,\r\n\t\t\t\t\t\t\t\theight : height,\r\n\t\t\t\t\t\t\t\tquality : 'high'\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tself.insertHtml(html).hideDialog().focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tdiv = dialog.div,\r\n\t\t\turlBox = K('[name=\"url\"]', div),\r\n\t\t\tviewServerBtn = K('[name=\"viewServer\"]', div),\r\n\t\t\twidthBox = K('[name=\"width\"]', div),\r\n\t\t\theightBox = K('[name=\"height\"]', div);\r\n\t\t\turlBox.val('http://');\r\n\t\t\tif (allowFlashUpload) {\r\n\t\t\t\tvar uploadbutton = K.uploadbutton({\r\n\t\t\t\t\tbutton : K('.ke-upload-button', div)[0],\r\n\t\t\t\t\tfieldName : filePostName,\r\n\t\t\t\t\textraParams : extraParams,\r\n\t\t\t\t\turl : K.addParam(uploadJson, 'dir=flash'),\r\n\t\t\t\t\tafterUpload : function(data) {\r\n\t\t\t\t\t\tdialog.hideLoading();\r\n\t\t\t\t\t\tif (data.error === 0) {\r\n\t\t\t\t\t\t\tvar url = data.url;\r\n\t\t\t\t\t\t\tif (formatUploadUrl) {\r\n\t\t\t\t\t\t\t\turl = K.formatUrl(url, 'absolute');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\turlBox.val(url);\r\n\t\t\t\t\t\t\tif (self.afterUpload) {\r\n\t\t\t\t\t\t\t\tself.afterUpload.call(self, url, data, name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\talert(self.lang('uploadSuccess'));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(data.message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tafterError : function(html) {\r\n\t\t\t\t\t\tdialog.hideLoading();\r\n\t\t\t\t\t\tself.errorDialog(html);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tuploadbutton.fileBox.change(function(e) {\r\n\t\t\t\t\tdialog.showLoading(self.lang('uploadLoading'));\r\n\t\t\t\t\tuploadbutton.submit();\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tK('.ke-upload-button', div).hide();\r\n\t\t\t}\r\n\t\t\tif (allowFileManager) {\r\n\t\t\t\tviewServerBtn.click(function(e) {\r\n\t\t\t\t\tself.loadPlugin('filemanager', function() {\r\n\t\t\t\t\t\tself.plugin.filemanagerDialog({\r\n\t\t\t\t\t\t\tviewType : 'LIST',\r\n\t\t\t\t\t\t\tdirName : 'flash',\r\n\t\t\t\t\t\t\tclickFn : function(url, title) {\r\n\t\t\t\t\t\t\t\tif (self.dialogs.length > 1) {\r\n\t\t\t\t\t\t\t\t\tK('[name=\"url\"]', div).val(url);\r\n\t\t\t\t\t\t\t\t\tif (self.afterSelectFile) {\r\n\t\t\t\t\t\t\t\t\t\tself.afterSelectFile.call(self, url);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tself.hideDialog();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tviewServerBtn.hide();\r\n\t\t\t}\r\n\t\t\tvar img = self.plugin.getSelectedFlash();\r\n\t\t\tif (img) {\r\n\t\t\t\tvar attrs = K.mediaAttrs(img.attr('data-ke-tag'));\r\n\t\t\t\turlBox.val(attrs.src);\r\n\t\t\t\twidthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0);\r\n\t\t\t\theightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0);\r\n\t\t\t}\r\n\t\t\turlBox[0].focus();\r\n\t\t\turlBox[0].select();\r\n\t\t},\r\n\t\t'delete' : function() {\r\n\t\t\tself.plugin.getSelectedFlash().remove();\r\n\t\t\tself.addBookmark();\r\n\t\t}\r\n\t};\r\n\tself.clickToolbar(name, self.plugin.flash.edit);\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('uploadImage', function(K) {\r\n\tvar editor = this;\r\n\teditor.clickToolbar('uploadImage', function() {\r\n\t\t$app.uploadFile({\r\n\t\t\tfileType: 'image',\r\n\t\t\tmultiple: true,\r\n\t\t\tsuccess: function(data) {\r\n\t\t\t\teditor.insertHtml(Array.from(data, item => `<img src=\"${item.filePath}\" alt=\"\" />`).join(''));\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\treturn;\r\n});\r\nKindEditor.plugin('image', function(K) {\r\n\tvar self = this, name = 'image',\r\n\t\tallowImageUpload = K.undef(self.allowImageUpload, false),\r\n\t\tallowImageRemote = K.undef(self.allowImageRemote, true),\r\n\t\tformatUploadUrl = K.undef(self.formatUploadUrl, true),\r\n\t\tallowFileManager = K.undef(self.allowFileManager, true),\r\n\t\tuploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),\r\n\t\timageTabIndex = K.undef(self.imageTabIndex, 0),\r\n\t\timgPath = self.pluginsPath + 'image/images/',\r\n\t\textraParams = K.undef(self.extraFileUploadParams, {}),\r\n\t\tfilePostName = K.undef(self.filePostName, 'imgFile'),\r\n\t\tfillDescAfterUploadImage = K.undef(self.fillDescAfterUploadImage, false),\r\n\t\tlang = self.lang(name + '.');\r\n\tself.plugin.imageDialog = function(options) {\r\n\t\tvar imageUrl = options.imageUrl,\r\n\t\t\timageWidth = K.undef(options.imageWidth, ''),\r\n\t\t\timageHeight = K.undef(options.imageHeight, ''),\r\n\t\t\timageTitle = K.undef(options.imageTitle, ''),\r\n\t\t\timageAlign = K.undef(options.imageAlign, ''),\r\n\t\t\tshowRemote = K.undef(options.showRemote, true),\r\n\t\t\tshowLocal = K.undef(options.showLocal, true),\r\n\t\t\ttabIndex = K.undef(options.tabIndex, 0),\r\n\t\t\tclickFn = options.clickFn;\r\n\t\tvar target = 'kindeditor_upload_iframe_' + new Date().getTime();\r\n\t\tvar hiddenElements = [];\r\n\t\tfor(var k in extraParams){\r\n\t\t\thiddenElements.push('<input type=\"hidden\" name=\"' + k + '\" value=\"' + extraParams[k] + '\" />');\r\n\t\t}\r\n\t\tvar html = [\r\n\t\t\t'<div style=\"padding:20px;\">',\r\n\t\t\t'<div class=\"tabs\"></div>',\r\n\t\t\t'<div class=\"tab1\" style=\"display:none;\">',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t'<label for=\"remoteUrl\" style=\"width:60px;\">' + lang.remoteUrl + '</label>',\r\n\t\t\t'<input type=\"text\" id=\"remoteUrl\" class=\"ke-input-text\" name=\"url\" value=\"\" style=\"width:200px;\" /> ',\r\n\t\t\t'<span class=\"ke-button-common ke-button-outer\">',\r\n\t\t\t'<input type=\"button\" class=\"ke-button-common ke-button\" name=\"viewServer\" value=\"' + lang.viewServer + '\" />',\r\n\t\t\t'</span>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t'<label for=\"remoteWidth\" style=\"width:60px;\">' + lang.size + '</label>',\r\n\t\t\tlang.width + ' <input type=\"text\" id=\"remoteWidth\" class=\"ke-input-text ke-input-number\" name=\"width\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\tlang.height + ' <input type=\"text\" class=\"ke-input-text ke-input-number\" name=\"height\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t'<img class=\"ke-refresh-btn\" src=\"' + imgPath + 'refresh.png\" width=\"16\" height=\"16\" alt=\"\" style=\"cursor:pointer;\" title=\"' + lang.resetSize + '\" />',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t'<label style=\"width:60px;\">' + lang.align + '</label>',\r\n\t\t\t'<input type=\"radio\" name=\"align\" class=\"ke-inline-block\" value=\"\" checked=\"checked\" /> <img name=\"defaultImg\" src=\"' + IMAGE_ALIGN_TOP + '\" width=\"23\" height=\"25\" alt=\"\" />',\r\n\t\t\t' <input type=\"radio\" name=\"align\" class=\"ke-inline-block\" value=\"left\" /> <img name=\"leftImg\" src=\"' + IMAGE_ALIGN_LEFT + '\" width=\"23\" height=\"25\" alt=\"\" />',\r\n\t\t\t' <input type=\"radio\" name=\"align\" class=\"ke-inline-block\" value=\"right\" /> <img name=\"rightImg\" src=\"' + IMAGE_ALIGN_RIGHT + '\" width=\"23\" height=\"25\" alt=\"\" />',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t'<label for=\"remoteTitle\" style=\"width:60px;\">' + lang.imgTitle + '</label>',\r\n\t\t\t'<input type=\"text\" id=\"remoteTitle\" class=\"ke-input-text\" name=\"title\" value=\"\" style=\"width:200px;\" />',\r\n\t\t\t'</div>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"tab2\" style=\"display:none;\">',\r\n\t\t\t'<iframe name=\"' + target + '\" style=\"display:none;\"></iframe>',\r\n\t\t\t'<form class=\"ke-upload-area ke-form\" method=\"post\" enctype=\"multipart/form-data\" target=\"' + target + '\" action=\"' + K.addParam(uploadJson, 'dir=image') + '\">',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\thiddenElements.join(''),\r\n\t\t\t'<label style=\"width:60px;\">' + lang.localUrl + '</label>',\r\n\t\t\t'<input type=\"text\" name=\"localUrl\" class=\"ke-input-text\" tabindex=\"-1\" style=\"width:200px;\" readonly=\"true\" /> ',\r\n\t\t\t'<input type=\"button\" class=\"ke-upload-button\" value=\"' + lang.upload + '\" />',\r\n\t\t\t'</div>',\r\n\t\t\t'</form>',\r\n\t\t\t'</div>',\r\n\t\t\t'</div>'\r\n\t\t].join('');\r\n\t\tvar dialogWidth = showLocal || allowFileManager ? 450 : 400,\r\n\t\t\tdialogHeight = showLocal && showRemote ? 300 : 250;\r\n\t\tvar dialog = self.createDialog({\r\n\t\t\tname : name,\r\n\t\t\twidth : dialogWidth,\r\n\t\t\theight : dialogHeight,\r\n\t\t\ttitle : self.lang(name),\r\n\t\t\tbody : html,\r\n\t\t\tyesBtn : {\r\n\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\tclick : function(e) {\r\n\t\t\t\t\tif (dialog.isLoading) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (showLocal && showRemote && tabs && tabs.selectedIndex === 1 || !showRemote) {\r\n\t\t\t\t\t\tif (uploadbutton.fileBox.val() == '') {\r\n\t\t\t\t\t\t\talert(self.lang('pleaseSelectFile'));\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdialog.showLoading(self.lang('uploadLoading'));\r\n\t\t\t\t\t\tuploadbutton.submit();\r\n\t\t\t\t\t\tlocalUrlBox.val('');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar url = K.trim(urlBox.val()),\r\n\t\t\t\t\t\twidth = widthBox.val(),\r\n\t\t\t\t\t\theight = heightBox.val(),\r\n\t\t\t\t\t\ttitle = titleBox.val(),\r\n\t\t\t\t\t\talign = '';\r\n\t\t\t\t\talignBox.each(function() {\r\n\t\t\t\t\t\tif (this.checked) {\r\n\t\t\t\t\t\t\talign = this.value;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (url == 'http://' || K.invalidUrl(url)) {\r\n\t\t\t\t\t\talert(self.lang('invalidUrl'));\r\n\t\t\t\t\t\turlBox[0].focus();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!/^\\d*$/.test(width)) {\r\n\t\t\t\t\t\talert(self.lang('invalidWidth'));\r\n\t\t\t\t\t\twidthBox[0].focus();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!/^\\d*$/.test(height)) {\r\n\t\t\t\t\t\talert(self.lang('invalidHeight'));\r\n\t\t\t\t\t\theightBox[0].focus();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclickFn.call(self, url, title, width, height, 0, align);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbeforeRemove : function() {\r\n\t\t\t\tviewServerBtn.unbind();\r\n\t\t\t\twidthBox.unbind();\r\n\t\t\t\theightBox.unbind();\r\n\t\t\t\trefreshBtn.unbind();\r\n\t\t\t}\r\n\t\t}),\r\n\t\tdiv = dialog.div;\r\n\t\tvar urlBox = K('[name=\"url\"]', div),\r\n\t\t\tlocalUrlBox = K('[name=\"localUrl\"]', div),\r\n\t\t\tviewServerBtn = K('[name=\"viewServer\"]', div),\r\n\t\t\twidthBox = K('.tab1 [name=\"width\"]', div),\r\n\t\t\theightBox = K('.tab1 [name=\"height\"]', div),\r\n\t\t\trefreshBtn = K('.ke-refresh-btn', div),\r\n\t\t\ttitleBox = K('.tab1 [name=\"title\"]', div),\r\n\t\t\talignBox = K('.tab1 [name=\"align\"]', div);\r\n\t\tvar tabs;\r\n\t\tif (showRemote && showLocal) {\r\n\t\t\ttabs = K.tabs({\r\n\t\t\t\tsrc : K('.tabs', div),\r\n\t\t\t\tafterSelect : function(i) {}\r\n\t\t\t});\r\n\t\t\ttabs.add({\r\n\t\t\t\ttitle : lang.remoteImage,\r\n\t\t\t\tpanel : K('.tab1', div)\r\n\t\t\t});\r\n\t\t\ttabs.add({\r\n\t\t\t\ttitle : lang.localImage,\r\n\t\t\t\tpanel : K('.tab2', div)\r\n\t\t\t});\r\n\t\t\ttabs.select(tabIndex);\r\n\t\t} else if (showRemote) {\r\n\t\t\tK('.tab1', div).show();\r\n\t\t} else if (showLocal) {\r\n\t\t\tK('.tab2', div).show();\r\n\t\t}\r\n\t\tvar uploadbutton = K.uploadbutton({\r\n\t\t\tbutton : K('.ke-upload-button', div)[0],\r\n\t\t\tfieldName : filePostName,\r\n\t\t\tform : K('.ke-form', div),\r\n\t\t\ttarget : target,\r\n\t\t\twidth: 60,\r\n\t\t\tafterUpload : function(data) {\r\n\t\t\t\tdialog.hideLoading();\r\n\t\t\t\tif (data.error === 0) {\r\n\t\t\t\t\tvar url = data.url;\r\n\t\t\t\t\tif (formatUploadUrl) {\r\n\t\t\t\t\t\turl = K.formatUrl(url, 'absolute');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (self.afterUpload) {\r\n\t\t\t\t\t\tself.afterUpload.call(self, url, data, name);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!fillDescAfterUploadImage) {\r\n\t\t\t\t\t\tclickFn.call(self, url, data.title, data.width, data.height, data.border, data.align);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tK(\".ke-dialog-row #remoteUrl\", div).val(url);\r\n\t\t\t\t\t\tK(\".ke-tabs-li\", div)[0].click();\r\n\t\t\t\t\t\tK(\".ke-refresh-btn\", div).click();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\talert(data.message);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tafterError : function(html) {\r\n\t\t\t\tdialog.hideLoading();\r\n\t\t\t\tself.errorDialog(html);\r\n\t\t\t}\r\n\t\t});\r\n\t\tuploadbutton.fileBox.change(function(e) {\r\n\t\t\tlocalUrlBox.val(uploadbutton.fileBox.val());\r\n\t\t});\r\n\t\tif (allowFileManager) {\r\n\t\t\tviewServerBtn.click(function(e) {\r\n\t\t\t\t$app.uploadFile({\r\n\t\t\t\t\tfileType: 'image',\r\n\t\t\t\t\tsuccess: function(data) {\r\n\t\t\t\t\t\tK('[name=\"url\"]', div).val(data.filePath);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\t\tself.loadPlugin('filemanager', function() {\r\n\t\t\t\t\tself.plugin.filemanagerDialog({\r\n\t\t\t\t\t\tviewType : 'VIEW',\r\n\t\t\t\t\t\tdirName : 'image',\r\n\t\t\t\t\t\tclickFn : function(url, title) {\r\n\t\t\t\t\t\t\tif (self.dialogs.length > 1) {\r\n\t\t\t\t\t\t\t\tK('[name=\"url\"]', div).val(url);\r\n\t\t\t\t\t\t\t\tif (self.afterSelectFile) {\r\n\t\t\t\t\t\t\t\t\tself.afterSelectFile.call(self, url);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tself.hideDialog();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tviewServerBtn.hide();\r\n\t\t}\r\n\t\tvar originalWidth = 0, originalHeight = 0;\r\n\t\tfunction setSize(width, height) {\r\n\t\t\twidthBox.val(width);\r\n\t\t\theightBox.val(height);\r\n\t\t\toriginalWidth = width;\r\n\t\t\toriginalHeight = height;\r\n\t\t}\r\n\t\trefreshBtn.click(function(e) {\r\n\t\t\tvar tempImg = K('<img src=\"' + urlBox.val() + '\" />', document).css({\r\n\t\t\t\tposition : 'absolute',\r\n\t\t\t\tvisibility : 'hidden',\r\n\t\t\t\ttop : 0,\r\n\t\t\t\tleft : '-1000px'\r\n\t\t\t});\r\n\t\t\ttempImg.bind('load', function() {\r\n\t\t\t\tsetSize(tempImg.width(), tempImg.height());\r\n\t\t\t\ttempImg.remove();\r\n\t\t\t});\r\n\t\t\tK(document.body).append(tempImg);\r\n\t\t});\r\n\t\twidthBox.change(function(e) {\r\n\t\t\tif (originalWidth > 0) {\r\n\t\t\t\theightBox.val(Math.round(originalHeight / originalWidth * parseInt(this.value, 10)));\r\n\t\t\t}\r\n\t\t});\r\n\t\theightBox.change(function(e) {\r\n\t\t\tif (originalHeight > 0) {\r\n\t\t\t\twidthBox.val(Math.round(originalWidth / originalHeight * parseInt(this.value, 10)));\r\n\t\t\t}\r\n\t\t});\r\n\t\turlBox.val(options.imageUrl);\r\n\t\t// setSize(options.imageWidth, options.imageHeight);\r\n\t\ttitleBox.val(options.imageTitle);\r\n\t\talignBox.each(function() {\r\n\t\t\tif (this.value === options.imageAlign) {\r\n\t\t\t\tthis.checked = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (showRemote && tabIndex === 0) {\r\n\t\t\turlBox[0].focus();\r\n\t\t\turlBox[0].select();\r\n\t\t}\r\n\t\treturn dialog;\r\n\t};\r\n\tself.plugin.image = {\r\n\t\tedit : function() {\r\n\t\t\tvar img = self.plugin.getSelectedImage();\r\n\t\t\tself.plugin.imageDialog({\r\n\t\t\t\timageUrl : img ? img.attr('data-ke-src') : 'http://',\r\n\t\t\t\timageWidth : img ? img.width() : '',\r\n\t\t\t\timageHeight : img ? img.height() : '',\r\n\t\t\t\timageTitle : img ? img.attr('title') : '',\r\n\t\t\t\timageAlign : img ? img.attr('align') : '',\r\n\t\t\t\tshowRemote : allowImageRemote,\r\n\t\t\t\tshowLocal : allowImageUpload,\r\n\t\t\t\ttabIndex: img ? 0 : imageTabIndex,\r\n\t\t\t\tclickFn : function(url, title, width, height, border, align) {\r\n\t\t\t\t\tif (img) {\r\n\t\t\t\t\t\timg.attr('src', url);\r\n\t\t\t\t\t\timg.attr('data-ke-src', url);\r\n\t\t\t\t\t\timg.attr('width', width);\r\n\t\t\t\t\t\timg.attr('height', height);\r\n\t\t\t\t\t\timg.attr('title', title);\r\n\t\t\t\t\t\timg.attr('align', align);\r\n\t\t\t\t\t\timg.attr('alt', title);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.exec('insertimage', url, title, width, height, border, align);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tself.hideDialog().focus();\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\t'delete' : function() {\r\n\t\t\tvar target = self.plugin.getSelectedImage();\r\n\t\t\tif (target.parent().name == 'a') {\r\n\t\t\t\ttarget = target.parent();\r\n\t\t\t}\r\n\t\t\ttarget.remove();\r\n\t\t\tself.addBookmark();\r\n\t\t}\r\n\t};\r\n\tself.clickToolbar(name, self.plugin.image.edit);\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('insertfile', function(K) {\r\n\tvar self = this, name = 'insertfile',\r\n\t\tallowFileUpload = K.undef(self.allowFileUpload, true),\r\n\t\tallowFileManager = K.undef(self.allowFileManager, false),\r\n\t\tformatUploadUrl = K.undef(self.formatUploadUrl, true),\r\n\t\tuploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),\r\n\t\textraParams = K.undef(self.extraFileUploadParams, {}),\r\n\t\tfilePostName = K.undef(self.filePostName, 'imgFile'),\r\n\t\tlang = self.lang(name + '.');\r\n\tself.plugin.fileDialog = function(options) {\r\n\t\tvar fileUrl = K.undef(options.fileUrl, 'http://'),\r\n\t\t\tfileTitle = K.undef(options.fileTitle, ''),\r\n\t\t\tclickFn = options.clickFn;\r\n\t\tvar html = [\r\n\t\t\t'<div style=\"padding:20px;\">',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t'<label for=\"keUrl\" style=\"width:60px;\">' + lang.url + '</label>',\r\n\t\t\t'<input type=\"text\" id=\"keUrl\" name=\"url\" class=\"ke-input-text\" style=\"width:160px;\" /> ',\r\n\t\t\t'<input type=\"button\" class=\"ke-upload-button\" value=\"' + lang.upload + '\" /> ',\r\n\t\t\t'<span class=\"ke-button-common ke-button-outer\">',\r\n\t\t\t'<input type=\"button\" class=\"ke-button-common ke-button\" name=\"viewServer\" value=\"' + lang.viewServer + '\" />',\r\n\t\t\t'</span>',\r\n\t\t\t'</div>',\r\n\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t'<label for=\"keTitle\" style=\"width:60px;\">' + lang.title + '</label>',\r\n\t\t\t'<input type=\"text\" id=\"keTitle\" class=\"ke-input-text\" name=\"title\" value=\"\" style=\"width:160px;\" /></div>',\r\n\t\t\t'</div>',\r\n\t\t\t'</form>',\r\n\t\t\t'</div>'\r\n\t\t\t].join('');\r\n\t\tvar dialog = self.createDialog({\r\n\t\t\tname : name,\r\n\t\t\twidth : 450,\r\n\t\t\ttitle : self.lang(name),\r\n\t\t\tbody : html,\r\n\t\t\tyesBtn : {\r\n\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\tclick : function(e) {\r\n\t\t\t\t\tvar url = K.trim(urlBox.val()),\r\n\t\t\t\t\t\ttitle = titleBox.val();\r\n\t\t\t\t\tif (url == 'http://' || K.invalidUrl(url)) {\r\n\t\t\t\t\t\talert(self.lang('invalidUrl'));\r\n\t\t\t\t\t\turlBox[0].focus();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (K.trim(title) === '') {\r\n\t\t\t\t\t\ttitle = url;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclickFn.call(self, url, title);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}),\r\n\t\tdiv = dialog.div;\r\n\t\tvar urlBox = K('[name=\"url\"]', div),\r\n\t\t\tviewServerBtn = K('[name=\"viewServer\"]', div),\r\n\t\t\ttitleBox = K('[name=\"title\"]', div);\r\n\t\tif (allowFileUpload) {\r\n\t\t\tvar uploadbutton = K.uploadbutton({\r\n\t\t\t\tbutton : K('.ke-upload-button', div)[0],\r\n\t\t\t\tfieldName : filePostName,\r\n\t\t\t\turl : K.addParam(uploadJson, 'dir=file'),\r\n\t\t\t\textraParams : extraParams,\r\n\t\t\t\tafterUpload : function(data) {\r\n\t\t\t\t\tdialog.hideLoading();\r\n\t\t\t\t\tif (data.error === 0) {\r\n\t\t\t\t\t\tvar url = data.url;\r\n\t\t\t\t\t\tif (formatUploadUrl) {\r\n\t\t\t\t\t\t\turl = K.formatUrl(url, 'absolute');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\turlBox.val(url);\r\n\t\t\t\t\t\tif (self.afterUpload) {\r\n\t\t\t\t\t\t\tself.afterUpload.call(self, url, data, name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\talert(self.lang('uploadSuccess'));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\talert(data.message);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tafterError : function(html) {\r\n\t\t\t\t\tdialog.hideLoading();\r\n\t\t\t\t\tself.errorDialog(html);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tuploadbutton.fileBox.change(function(e) {\r\n\t\t\t\tdialog.showLoading(self.lang('uploadLoading'));\r\n\t\t\t\tuploadbutton.submit();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tK('.ke-upload-button', div).hide();\r\n\t\t}\r\n\t\tif (allowFileManager) {\r\n\t\t\tviewServerBtn.click(function(e) {\r\n\t\t\t\tself.loadPlugin('filemanager', function() {\r\n\t\t\t\t\tself.plugin.filemanagerDialog({\r\n\t\t\t\t\t\tviewType : 'LIST',\r\n\t\t\t\t\t\tdirName : 'file',\r\n\t\t\t\t\t\tclickFn : function(url, title) {\r\n\t\t\t\t\t\t\tif (self.dialogs.length > 1) {\r\n\t\t\t\t\t\t\t\tK('[name=\"url\"]', div).val(url);\r\n\t\t\t\t\t\t\t\tif (self.afterSelectFile) {\r\n\t\t\t\t\t\t\t\t\tself.afterSelectFile.call(self, url);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tself.hideDialog();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tviewServerBtn.hide();\r\n\t\t}\r\n\t\turlBox.val(fileUrl);\r\n\t\ttitleBox.val(fileTitle);\r\n\t\turlBox[0].focus();\r\n\t\turlBox[0].select();\r\n\t};\r\n\tself.clickToolbar(name, function() {\r\n\t\tself.plugin.fileDialog({\r\n\t\t\tclickFn : function(url, title) {\r\n\t\t\t\tvar html = '<a class=\"ke-insertfile\" href=\"' + url + '\" data-ke-src=\"' + url + '\" target=\"_blank\">' + title + '</a>';\r\n\t\t\t\tself.insertHtml(html).hideDialog().focus();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('lineheight', function(K) {\r\n\tvar self = this, name = 'lineheight', lang = self.lang(name + '.');\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'});\r\n\t\tif (commonNode) {\r\n\t\t\tcurVal = commonNode.css('line-height');\r\n\t\t}\r\n\t\tvar menu = self.createMenu({\r\n\t\t\tname : name,\r\n\t\t\twidth : 150\r\n\t\t});\r\n\t\tK.each(lang.lineHeight, function(i, row) {\r\n\t\t\tK.each(row, function(key, val) {\r\n\t\t\t\tmenu.addItem({\r\n\t\t\t\t\ttitle : val,\r\n\t\t\t\t\tchecked : curVal === key,\r\n\t\t\t\t\tclick : function() {\r\n\t\t\t\t\t\tself.cmd.toggle('<span style=\"line-height:' + key + ';\"></span>', {\r\n\t\t\t\t\t\t\tspan : '.line-height=' + key\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tself.updateState();\r\n\t\t\t\t\t\tself.addBookmark();\r\n\t\t\t\t\t\tself.hideMenu();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('link', function(K) {\r\n\tvar self = this, name = 'link';\r\n\tself.plugin.link = {\r\n\t\tedit : function() {\r\n\t\t\tvar lang = self.lang(name + '.'),\r\n\t\t\t\thtml = '<div style=\"padding:20px;\">' +\r\n\t\t\t\t\t'<div class=\"ke-dialog-row\">' +\r\n\t\t\t\t\t'<label for=\"keUrl\" style=\"width:60px;\">' + lang.url + '</label>' +\r\n\t\t\t\t\t'<input class=\"ke-input-text\" type=\"text\" id=\"keUrl\" name=\"url\" value=\"\" style=\"width:260px;\" /></div>' +\r\n\t\t\t\t\t'<div class=\"ke-dialog-row\"\">' +\r\n\t\t\t\t\t'<label for=\"keType\" style=\"width:60px;\">' + lang.linkType + '</label>' +\r\n\t\t\t\t\t'<select id=\"keType\" name=\"type\"></select>' +\r\n\t\t\t\t\t'</div>' +\r\n\t\t\t\t\t'</div>',\r\n\t\t\t\tdialog = self.createDialog({\r\n\t\t\t\t\tname : name,\r\n\t\t\t\t\twidth : 450,\r\n\t\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\t\tbody : html,\r\n\t\t\t\t\tyesBtn : {\r\n\t\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\t\tvar url = K.trim(urlBox.val());\r\n\t\t\t\t\t\t\tif (url == 'http://' || K.invalidUrl(url)) {\r\n\t\t\t\t\t\t\t\talert(self.lang('invalidUrl'));\r\n\t\t\t\t\t\t\t\turlBox[0].focus();\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tself.exec('createlink', url, typeBox.val()).hideDialog().focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}),\r\n\t\t\t\tdiv = dialog.div,\r\n\t\t\t\turlBox = K('input[name=\"url\"]', div),\r\n\t\t\t\ttypeBox = K('select[name=\"type\"]', div);\r\n\t\t\turlBox.val('http://');\r\n\t\t\ttypeBox[0].options[0] = new Option(lang.newWindow, '_blank');\r\n\t\t\ttypeBox[0].options[1] = new Option(lang.selfWindow, '');\r\n\t\t\tself.cmd.selection();\r\n\t\t\tvar a = self.plugin.getSelectedLink();\r\n\t\t\tif (a) {\r\n\t\t\t\tself.cmd.range.selectNode(a[0]);\r\n\t\t\t\tself.cmd.select();\r\n\t\t\t\turlBox.val(a.attr('data-ke-src'));\r\n\t\t\t\ttypeBox.val(a.attr('target'));\r\n\t\t\t}\r\n\t\t\turlBox[0].focus();\r\n\t\t\turlBox[0].select();\r\n\t\t},\r\n\t\t'delete' : function() {\r\n\t\t\tself.exec('unlink', null);\r\n\t\t}\r\n\t};\r\n\tself.clickToolbar(name, self.plugin.link.edit);\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('media', function(K) {\r\n\tvar self = this, name = 'media', lang = self.lang(name + '.'),\r\n\t\tallowMediaUpload = K.undef(self.allowMediaUpload, true),\r\n\t\tallowFileManager = K.undef(self.allowFileManager, false),\r\n\t\tformatUploadUrl = K.undef(self.formatUploadUrl, true),\r\n\t\textraParams = K.undef(self.extraFileUploadParams, {}),\r\n\t\tfilePostName = K.undef(self.filePostName, 'imgFile'),\r\n\t\tuploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php');\r\n\tself.plugin.media = {\r\n\t\tedit : function() {\r\n\t\t\tvar html = [\r\n\t\t\t\t'<div style=\"padding:20px;\">',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keUrl\" style=\"width:60px;\">' + lang.url + '</label>',\r\n\t\t\t\t'<input class=\"ke-input-text\" type=\"text\" id=\"keUrl\" name=\"url\" value=\"\" style=\"width:160px;\" /> ',\r\n\t\t\t\t'<input type=\"button\" class=\"ke-upload-button\" value=\"' + lang.upload + '\" /> ',\r\n\t\t\t\t'<span class=\"ke-button-common ke-button-outer\">',\r\n\t\t\t\t'<input type=\"button\" class=\"ke-button-common ke-button\" name=\"viewServer\" value=\"' + lang.viewServer + '\" />',\r\n\t\t\t\t'</span>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keWidth\" style=\"width:60px;\">' + lang.width + '</label>',\r\n\t\t\t\t'<input type=\"text\" id=\"keWidth\" class=\"ke-input-text ke-input-number\" name=\"width\" value=\"550\" maxlength=\"4\" />',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keHeight\" style=\"width:60px;\">' + lang.height + '</label>',\r\n\t\t\t\t'<input type=\"text\" id=\"keHeight\" class=\"ke-input-text ke-input-number\" name=\"height\" value=\"400\" maxlength=\"4\" />',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keAutostart\">' + lang.autostart + '</label>',\r\n\t\t\t\t'<input type=\"checkbox\" id=\"keAutostart\" name=\"autostart\" value=\"\" /> ',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'</div>'\r\n\t\t\t].join('');\r\n\t\t\tvar dialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 450,\r\n\t\t\t\theight : 230,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar url = K.trim(urlBox.val()),\r\n\t\t\t\t\t\t\twidth = widthBox.val(),\r\n\t\t\t\t\t\t\theight = heightBox.val();\r\n\t\t\t\t\t\tif (url == 'http://' || K.invalidUrl(url)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidUrl'));\r\n\t\t\t\t\t\t\turlBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(width)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidWidth'));\r\n\t\t\t\t\t\t\twidthBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(height)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidHeight'));\r\n\t\t\t\t\t\t\theightBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar html = K.mediaImg(self.themesPath + 'common/blank.gif', {\r\n\t\t\t\t\t\t\t\tsrc : url,\r\n\t\t\t\t\t\t\t\ttype : K.mediaType(url),\r\n\t\t\t\t\t\t\t\twidth : width,\r\n\t\t\t\t\t\t\t\theight : height,\r\n\t\t\t\t\t\t\t\tautostart : autostartBox[0].checked ? 'true' : 'false',\r\n\t\t\t\t\t\t\t\tloop : 'true'\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tself.insertHtml(html).hideDialog().focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tdiv = dialog.div,\r\n\t\t\turlBox = K('[name=\"url\"]', div),\r\n\t\t\tviewServerBtn = K('[name=\"viewServer\"]', div),\r\n\t\t\twidthBox = K('[name=\"width\"]', div),\r\n\t\t\theightBox = K('[name=\"height\"]', div),\r\n\t\t\tautostartBox = K('[name=\"autostart\"]', div);\r\n\t\t\turlBox.val('http://');\r\n\t\t\tif (allowMediaUpload) {\r\n\t\t\t\tvar uploadbutton = K.uploadbutton({\r\n\t\t\t\t\tbutton : K('.ke-upload-button', div)[0],\r\n\t\t\t\t\tfieldName : filePostName,\r\n\t\t\t\t\textraParams : extraParams,\r\n\t\t\t\t\turl : K.addParam(uploadJson, 'dir=media'),\r\n\t\t\t\t\tafterUpload : function(data) {\r\n\t\t\t\t\t\tdialog.hideLoading();\r\n\t\t\t\t\t\tif (data.error === 0) {\r\n\t\t\t\t\t\t\tvar url = data.url;\r\n\t\t\t\t\t\t\tif (formatUploadUrl) {\r\n\t\t\t\t\t\t\t\turl = K.formatUrl(url, 'absolute');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\turlBox.val(url);\r\n\t\t\t\t\t\t\tif (self.afterUpload) {\r\n\t\t\t\t\t\t\t\tself.afterUpload.call(self, url, data, name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\talert(self.lang('uploadSuccess'));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(data.message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tafterError : function(html) {\r\n\t\t\t\t\t\tdialog.hideLoading();\r\n\t\t\t\t\t\tself.errorDialog(html);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tuploadbutton.fileBox.change(function(e) {\r\n\t\t\t\t\tdialog.showLoading(self.lang('uploadLoading'));\r\n\t\t\t\t\tuploadbutton.submit();\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tK('.ke-upload-button', div).hide();\r\n\t\t\t}\r\n\t\t\tif (allowFileManager) {\r\n\t\t\t\tviewServerBtn.click(function(e) {\r\n\t\t\t\t\tself.loadPlugin('filemanager', function() {\r\n\t\t\t\t\t\tself.plugin.filemanagerDialog({\r\n\t\t\t\t\t\t\tviewType : 'LIST',\r\n\t\t\t\t\t\t\tdirName : 'media',\r\n\t\t\t\t\t\t\tclickFn : function(url, title) {\r\n\t\t\t\t\t\t\t\tif (self.dialogs.length > 1) {\r\n\t\t\t\t\t\t\t\t\tK('[name=\"url\"]', div).val(url);\r\n\t\t\t\t\t\t\t\t\tif (self.afterSelectFile) {\r\n\t\t\t\t\t\t\t\t\t\tself.afterSelectFile.call(self, url);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tself.hideDialog();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tviewServerBtn.hide();\r\n\t\t\t}\r\n\t\t\tvar img = self.plugin.getSelectedMedia();\r\n\t\t\tif (img) {\r\n\t\t\t\tvar attrs = K.mediaAttrs(img.attr('data-ke-tag'));\r\n\t\t\t\turlBox.val(attrs.src);\r\n\t\t\t\twidthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0);\r\n\t\t\t\theightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0);\r\n\t\t\t\tautostartBox[0].checked = (attrs.autostart === 'true');\r\n\t\t\t}\r\n\t\t\turlBox[0].focus();\r\n\t\t\turlBox[0].select();\r\n\t\t},\r\n\t\t'delete' : function() {\r\n\t\t\tself.plugin.getSelectedMedia().remove();\r\n\t\t\tself.addBookmark();\r\n\t\t}\r\n\t};\r\n\tself.clickToolbar(name, self.plugin.media.edit);\r\n});\r\n\n/*******************************************************************************\n* KindEditor - WYSIWYG HTML Editor for Internet\n* Copyright (C) 2006-2011 kindsoft.net\n*\n* @author Roddy <luolonghao@gmail.com>\n* @site http://www.kindsoft.net/\n* @licence http://www.kindsoft.net/license.php\n*******************************************************************************/\n(function(K) {\nfunction KSWFUpload(options) {\n\tthis.init(options);\n}\nK.extend(KSWFUpload, {\n\tinit : function(options) {\n\t\tvar self = this;\n\t\toptions.afterError = options.afterError || function(str) {\n\t\t\talert(str);\n\t\t};\n\t\tself.options = options;\n\t\tself.progressbars = {};\n\t\tself.div = K(options.container).html([\n\t\t\t'<div class=\"ke-swfupload\">',\n\t\t\t'<div class=\"ke-swfupload-top\">',\n\t\t\t'<div class=\"ke-inline-block ke-swfupload-button\">',\n\t\t\t'<input type=\"button\" value=\"Browse\" />',\n\t\t\t'</div>',\n\t\t\t'<div class=\"ke-inline-block ke-swfupload-desc\">' + options.uploadDesc + '</div>',\n\t\t\t'<span class=\"ke-button-common ke-button-outer ke-swfupload-startupload\">',\n\t\t\t'<input type=\"button\" class=\"ke-button-common ke-button\" value=\"' + options.startButtonValue + '\" />',\n\t\t\t'</span>',\n\t\t\t'</div>',\n\t\t\t'<div class=\"ke-swfupload-body\"></div>',\n\t\t\t'</div>'\n\t\t].join(''));\n\t\tself.bodyDiv = K('.ke-swfupload-body', self.div);\n\t\tfunction showError(itemDiv, msg) {\n\t\t\tK('.ke-status > div', itemDiv).hide();\n\t\t\tK('.ke-message', itemDiv).addClass('ke-error').show().html(K.escape(msg));\n\t\t}\n\t\tvar settings = {\n\t\t\tdebug : false,\n\t\t\tupload_url : options.uploadUrl,\n\t\t\tflash_url : options.flashUrl,\n\t\t\tfile_post_name : options.filePostName,\n\t\t\tbutton_placeholder : K('.ke-swfupload-button > input', self.div)[0],\n\t\t\tbutton_image_url: options.buttonImageUrl,\n\t\t\tbutton_width: options.buttonWidth,\n\t\t\tbutton_height: options.buttonHeight,\n\t\t\tbutton_cursor : SWFUpload.CURSOR.HAND,\n\t\t\tfile_types : options.fileTypes,\n\t\t\tfile_types_description : options.fileTypesDesc,\n\t\t\tfile_upload_limit : options.fileUploadLimit,\n\t\t\tfile_size_limit : options.fileSizeLimit,\n\t\t\tpost_params : options.postParams,\n\t\t\tfile_queued_handler : function(file) {\n\t\t\t\tfile.url = self.options.fileIconUrl;\n\t\t\t\tself.appendFile(file);\n\t\t\t},\n\t\t\tfile_queue_error_handler : function(file, errorCode, message) {\n\t\t\t\tvar errorName = '';\n\t\t\t\tswitch (errorCode) {\n\t\t\t\t\tcase SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:\n\t\t\t\t\t\terrorName = options.queueLimitExceeded;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:\n\t\t\t\t\t\terrorName = options.fileExceedsSizeLimit;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:\n\t\t\t\t\t\terrorName = options.zeroByteFile;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:\n\t\t\t\t\t\terrorName = options.invalidFiletype;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\terrorName = options.unknownError;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tK.DEBUG && alert(errorName);\n\t\t\t},\n\t\t\tupload_start_handler : function(file) {\n\t\t\t\tvar self = this;\n\t\t\t\tvar itemDiv = K('div[data-id=\"' + file.id + '\"]', self.bodyDiv);\n\t\t\t\tK('.ke-status > div', itemDiv).hide();\n\t\t\t\tK('.ke-progressbar', itemDiv).show();\n\t\t\t},\n\t\t\tupload_progress_handler : function(file, bytesLoaded, bytesTotal) {\n\t\t\t\tvar percent = Math.round(bytesLoaded * 100 / bytesTotal);\n\t\t\t\tvar progressbar = self.progressbars[file.id];\n\t\t\t\tprogressbar.bar.css('width', Math.round(percent * 80 / 100) + 'px');\n\t\t\t\tprogressbar.percent.html(percent + '%');\n\t\t\t},\n\t\t\tupload_error_handler : function(file, errorCode, message) {\n\t\t\t\tif (file && file.filestatus == SWFUpload.FILE_STATUS.ERROR) {\n\t\t\t\t\tvar itemDiv = K('div[data-id=\"' + file.id + '\"]', self.bodyDiv).eq(0);\n\t\t\t\t\tshowError(itemDiv, self.options.errorMessage);\n\t\t\t\t}\n\t\t\t},\n\t\t\tupload_success_handler : function(file, serverData) {\n\t\t\t\tvar itemDiv = K('div[data-id=\"' + file.id + '\"]', self.bodyDiv).eq(0);\n\t\t\t\tvar data = {};\n\t\t\t\ttry {\n\t\t\t\t\tdata = K.json(serverData);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tself.options.afterError.call(this, '<!doctype html><html>' + serverData + '</html>');\n\t\t\t\t}\n\t\t\t\tif (data.error !== 0) {\n\t\t\t\t\tshowError(itemDiv, K.DEBUG ? data.message : self.options.errorMessage);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfile.url = data.url;\n\t\t\t\tK('.ke-img', itemDiv).attr('src', file.url).attr('data-status', file.filestatus).data('data', data);\n\t\t\t\tK('.ke-status > div', itemDiv).hide();\n\t\t\t}\n\t\t};\n\t\tself.swfu = new SWFUpload(settings);\n\t\tK('.ke-swfupload-startupload input', self.div).click(function() {\n\t\t\tself.swfu.startUpload();\n\t\t});\n\t},\n\tgetUrlList : function() {\n\t\tvar list = [];\n\t\tK('.ke-img', self.bodyDiv).each(function() {\n\t\t\tvar img = K(this);\n\t\t\tvar status = img.attr('data-status');\n\t\t\tif (status == SWFUpload.FILE_STATUS.COMPLETE) {\n\t\t\t\tlist.push(img.data('data'));\n\t\t\t}\n\t\t});\n\t\treturn list;\n\t},\n\tremoveFile : function(fileId) {\n\t\tvar self = this;\n\t\tself.swfu.cancelUpload(fileId);\n\t\tvar itemDiv = K('div[data-id=\"' + fileId + '\"]', self.bodyDiv);\n\t\tK('.ke-photo', itemDiv).unbind();\n\t\tK('.ke-delete', itemDiv).unbind();\n\t\titemDiv.remove();\n\t},\n\tremoveFiles : function() {\n\t\tvar self = this;\n\t\tK('.ke-item', self.bodyDiv).each(function() {\n\t\t\tself.removeFile(K(this).attr('data-id'));\n\t\t});\n\t},\n\tappendFile : function(file) {\n\t\tvar self = this;\n\t\tvar itemDiv = K('<div class=\"ke-inline-block ke-item\" data-id=\"' + file.id + '\"></div>');\n\t\tself.bodyDiv.append(itemDiv);\n\t\tvar photoDiv = K('<div class=\"ke-inline-block ke-photo\"></div>')\n\t\t\t.mouseover(function(e) {\n\t\t\t\tK(this).addClass('ke-on');\n\t\t\t})\n\t\t\t.mouseout(function(e) {\n\t\t\t\tK(this).removeClass('ke-on');\n\t\t\t});\n\t\titemDiv.append(photoDiv);\n\t\tvar img = K('<img src=\"' + file.url + '\" class=\"ke-img\" data-status=\"' + file.filestatus + '\" width=\"80\" height=\"80\" alt=\"' + file.name + '\" />');\n\t\tphotoDiv.append(img);\n\t\tK('<span class=\"ke-delete\"></span>').appendTo(photoDiv).click(function() {\n\t\t\tself.removeFile(file.id);\n\t\t});\n\t\tvar statusDiv = K('<div class=\"ke-status\"></div>').appendTo(photoDiv);\n\t\tK(['<div class=\"ke-progressbar\">',\n\t\t\t'<div class=\"ke-progressbar-bar\"><div class=\"ke-progressbar-bar-inner\"></div></div>',\n\t\t\t'<div class=\"ke-progressbar-percent\">0%</div></div>'].join('')).hide().appendTo(statusDiv);\n\t\tK('<div class=\"ke-message\">' + self.options.pendingMessage + '</div>').appendTo(statusDiv);\n\t\titemDiv.append('<div class=\"ke-name\">' + file.name + '</div>');\n\t\tself.progressbars[file.id] = {\n\t\t\tbar : K('.ke-progressbar-bar-inner', photoDiv),\n\t\t\tpercent : K('.ke-progressbar-percent', photoDiv)\n\t\t};\n\t},\n\tremove : function() {\n\t\tthis.removeFiles();\n\t\tthis.swfu.destroy();\n\t\tthis.div.html('');\n\t}\n});\nK.swfupload = function(element, options) {\n\treturn new KSWFUpload(element, options);\n};\n})(KindEditor);\nKindEditor.plugin('multiimage', function(K) {\n\tvar self = this, name = 'multiimage',\n\t\tformatUploadUrl = K.undef(self.formatUploadUrl, true),\n\t\tuploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),\n\t\timgPath = self.pluginsPath + 'multiimage/images/',\n\t\timageSizeLimit = K.undef(self.imageSizeLimit, '1MB'),\n\t\timageFileTypes = K.undef(self.imageFileTypes, '*.jpg;*.gif;*.png'),\n\t\timageUploadLimit = K.undef(self.imageUploadLimit, 20),\n\t\tfilePostName = K.undef(self.filePostName, 'imgFile'),\n\t\tlang = self.lang(name + '.');\n\tself.plugin.multiImageDialog = function(options) {\n\t\tvar clickFn = options.clickFn,\n\t\t\tuploadDesc = K.tmpl(lang.uploadDesc, {uploadLimit : imageUploadLimit, sizeLimit : imageSizeLimit});\n\t\tvar html = [\n\t\t\t'<div style=\"padding:20px;\">',\n\t\t\t'<div class=\"swfupload\">',\n\t\t\t'</div>',\n\t\t\t'</div>'\n\t\t].join('');\n\t\tvar dialog = self.createDialog({\n\t\t\tname : name,\n\t\t\twidth : 650,\n\t\t\theight : 510,\n\t\t\ttitle : self.lang(name),\n\t\t\tbody : html,\n\t\t\tpreviewBtn : {\n\t\t\t\tname : lang.insertAll,\n\t\t\t\tclick : function(e) {\n\t\t\t\t\tclickFn.call(self, swfupload.getUrlList());\n\t\t\t\t}\n\t\t\t},\n\t\t\tyesBtn : {\n\t\t\t\tname : lang.clearAll,\n\t\t\t\tclick : function(e) {\n\t\t\t\t\tswfupload.removeFiles();\n\t\t\t\t}\n\t\t\t},\n\t\t\tbeforeRemove : function() {\n\t\t\t\tif (!K.IE || K.V <= 8) {\n\t\t\t\t\tswfupload.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t\tdiv = dialog.div;\n\t\tvar swfupload = K.swfupload({\n\t\t\tcontainer : K('.swfupload', div),\n\t\t\tbuttonImageUrl : imgPath + (self.langType == 'zh-CN' ? 'select-files-zh-CN.png' : 'select-files-en.png'),\n\t\t\tbuttonWidth : self.langType == 'zh-CN' ? 72 : 88,\n\t\t\tbuttonHeight : 23,\n\t\t\tfileIconUrl : imgPath + 'image.png',\n\t\t\tuploadDesc : uploadDesc,\n\t\t\tstartButtonValue : lang.startUpload,\n\t\t\tuploadUrl : K.addParam(uploadJson, 'dir=image'),\n\t\t\tflashUrl : imgPath + 'swfupload.swf',\n\t\t\tfilePostName : filePostName,\n\t\t\tfileTypes : '*.jpg;*.jpeg;*.gif;*.png;*.bmp',\n\t\t\tfileTypesDesc : 'Image Files',\n\t\t\tfileUploadLimit : imageUploadLimit,\n\t\t\tfileSizeLimit : imageSizeLimit,\n\t\t\tpostParams : K.undef(self.extraFileUploadParams, {}),\n\t\t\tqueueLimitExceeded : lang.queueLimitExceeded,\n\t\t\tfileExceedsSizeLimit : lang.fileExceedsSizeLimit,\n\t\t\tzeroByteFile : lang.zeroByteFile,\n\t\t\tinvalidFiletype : lang.invalidFiletype,\n\t\t\tunknownError : lang.unknownError,\n\t\t\tpendingMessage : lang.pending,\n\t\t\terrorMessage : lang.uploadError,\n\t\t\tafterError : function(html) {\n\t\t\t\tself.errorDialog(html);\n\t\t\t}\n\t\t});\n\t\treturn dialog;\n\t};\n\tself.clickToolbar(name, function() {\n\t\tself.plugin.multiImageDialog({\n\t\t\tclickFn : function (urlList) {\n\t\t\t\tif (urlList.length === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tK.each(urlList, function(i, data) {\n\t\t\t\t\tif (self.afterUpload) {\n\t\t\t\t\t\tself.afterUpload.call(self, data.url, data, 'multiimage');\n\t\t\t\t\t}\n\t\t\t\t\tself.exec('insertimage', data.url, data.title, data.width, data.height, data.border, data.align);\n\t\t\t\t});\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tself.hideDialog().focus();\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t});\n\t});\n});\n/* ******************* */\n/* Constructor & Init */\n/* ******************* */\n(function() {\nwindow.SWFUpload = function (settings) {\n\tthis.initSWFUpload(settings);\n};\nSWFUpload.prototype.initSWFUpload = function (settings) {\n\ttry {\n\t\tthis.customSettings = {};\n\t\tthis.settings = settings;\n\t\tthis.eventQueue = [];\n\t\tthis.movieName = \"KindEditor_SWFUpload_\" + SWFUpload.movieCount++;\n\t\tthis.movieElement = null;\n\t\tSWFUpload.instances[this.movieName] = this;\n\t\tthis.initSettings();\n\t\tthis.loadFlash();\n\t\tthis.displayDebugInfo();\n\t} catch (ex) {\n\t\tdelete SWFUpload.instances[this.movieName];\n\t\tthrow ex;\n\t}\n};\n/* *************** */\n/* Static Members */\n/* *************** */\nSWFUpload.instances = {};\nSWFUpload.movieCount = 0;\nSWFUpload.version = \"2.2.0 2009-03-25\";\nSWFUpload.QUEUE_ERROR = {\n\tQUEUE_LIMIT_EXCEEDED\t \t\t: -100,\n\tFILE_EXCEEDS_SIZE_LIMIT \t\t: -110,\n\tZERO_BYTE_FILE\t\t\t \t\t: -120,\n\tINVALID_FILETYPE\t\t \t\t: -130\n};\nSWFUpload.UPLOAD_ERROR = {\n\tHTTP_ERROR\t\t\t\t \t\t: -200,\n\tMISSING_UPLOAD_URL\t \t\t: -210,\n\tIO_ERROR\t\t\t\t \t\t: -220,\n\tSECURITY_ERROR\t\t\t \t\t: -230,\n\tUPLOAD_LIMIT_EXCEEDED\t \t\t: -240,\n\tUPLOAD_FAILED\t\t\t \t\t: -250,\n\tSPECIFIED_FILE_ID_NOT_FOUND\t\t: -260,\n\tFILE_VALIDATION_FAILED\t \t\t: -270,\n\tFILE_CANCELLED\t\t\t \t\t: -280,\n\tUPLOAD_STOPPED\t\t\t\t\t: -290\n};\nSWFUpload.FILE_STATUS = {\n\tQUEUED\t\t : -1,\n\tIN_PROGRESS\t : -2,\n\tERROR\t\t : -3,\n\tCOMPLETE\t : -4,\n\tCANCELLED\t : -5\n};\nSWFUpload.BUTTON_ACTION = {\n\tSELECT_FILE : -100,\n\tSELECT_FILES : -110,\n\tSTART_UPLOAD : -120\n};\nSWFUpload.CURSOR = {\n\tARROW : -1,\n\tHAND : -2\n};\nSWFUpload.WINDOW_MODE = {\n\tWINDOW : \"window\",\n\tTRANSPARENT : \"transparent\",\n\tOPAQUE : \"opaque\"\n};\nSWFUpload.completeURL = function(url) {\n\tif (typeof(url) !== \"string\" || url.match(/^https?:\\/\\//i) || url.match(/^\\//)) {\n\t\treturn url;\n\t}\n\tvar currentURL = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? \":\" + window.location.port : \"\");\n\tvar indexSlash = window.location.pathname.lastIndexOf(\"/\");\n\tif (indexSlash <= 0) {\n\t\tpath = \"/\";\n\t} else {\n\t\tpath = window.location.pathname.substr(0, indexSlash) + \"/\";\n\t}\n\treturn /*currentURL +*/ path + url;\n};\n/* ******************** */\n/* Instance Members */\n/* ******************** */\nSWFUpload.prototype.initSettings = function () {\n\tthis.ensureDefault = function (settingName, defaultValue) {\n\t\tthis.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName];\n\t};\n\tthis.ensureDefault(\"upload_url\", \"\");\n\tthis.ensureDefault(\"preserve_relative_urls\", false);\n\tthis.ensureDefault(\"file_post_name\", \"Filedata\");\n\tthis.ensureDefault(\"post_params\", {});\n\tthis.ensureDefault(\"use_query_string\", false);\n\tthis.ensureDefault(\"requeue_on_error\", false);\n\tthis.ensureDefault(\"http_success\", []);\n\tthis.ensureDefault(\"assume_success_timeout\", 0);\n\tthis.ensureDefault(\"file_types\", \"*.*\");\n\tthis.ensureDefault(\"file_types_description\", \"All Files\");\n\tthis.ensureDefault(\"file_size_limit\", 0);\n\tthis.ensureDefault(\"file_upload_limit\", 0);\n\tthis.ensureDefault(\"file_queue_limit\", 0);\n\tthis.ensureDefault(\"flash_url\", \"swfupload.swf\");\n\tthis.ensureDefault(\"prevent_swf_caching\", true);\n\tthis.ensureDefault(\"button_image_url\", \"\");\n\tthis.ensureDefault(\"button_width\", 1);\n\tthis.ensureDefault(\"button_height\", 1);\n\tthis.ensureDefault(\"button_text\", \"\");\n\tthis.ensureDefault(\"button_text_style\", \"color: #000000; font-size: 16pt;\");\n\tthis.ensureDefault(\"button_text_top_padding\", 0);\n\tthis.ensureDefault(\"button_text_left_padding\", 0);\n\tthis.ensureDefault(\"button_action\", SWFUpload.BUTTON_ACTION.SELECT_FILES);\n\tthis.ensureDefault(\"button_disabled\", false);\n\tthis.ensureDefault(\"button_placeholder_id\", \"\");\n\tthis.ensureDefault(\"button_placeholder\", null);\n\tthis.ensureDefault(\"button_cursor\", SWFUpload.CURSOR.ARROW);\n\tthis.ensureDefault(\"button_window_mode\", SWFUpload.WINDOW_MODE.WINDOW);\n\tthis.ensureDefault(\"debug\", false);\n\tthis.settings.debug_enabled = this.settings.debug;\n\tthis.settings.return_upload_start_handler = this.returnUploadStart;\n\tthis.ensureDefault(\"swfupload_loaded_handler\", null);\n\tthis.ensureDefault(\"file_dialog_start_handler\", null);\n\tthis.ensureDefault(\"file_queued_handler\", null);\n\tthis.ensureDefault(\"file_queue_error_handler\", null);\n\tthis.ensureDefault(\"file_dialog_complete_handler\", null);\n\tthis.ensureDefault(\"upload_start_handler\", null);\n\tthis.ensureDefault(\"upload_progress_handler\", null);\n\tthis.ensureDefault(\"upload_error_handler\", null);\n\tthis.ensureDefault(\"upload_success_handler\", null);\n\tthis.ensureDefault(\"upload_complete_handler\", null);\n\tthis.ensureDefault(\"debug_handler\", this.debugMessage);\n\tthis.ensureDefault(\"custom_settings\", {});\n\tthis.customSettings = this.settings.custom_settings;\n\tif (!!this.settings.prevent_swf_caching) {\n\t\tthis.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + \"preventswfcaching=\" + new Date().getTime();\n\t}\n\tif (!this.settings.preserve_relative_urls) {\n\t\tthis.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);\n\t\tthis.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url);\n\t}\n\tdelete this.ensureDefault;\n};\nSWFUpload.prototype.loadFlash = function () {\n\tvar targetElement, tempParent;\n\tif (document.getElementById(this.movieName) !== null) {\n\t\tthrow \"ID \" + this.movieName + \" is already in use. The Flash Object could not be added\";\n\t}\n\ttargetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;\n\tif (targetElement == undefined) {\n\t\tthrow \"Could not find the placeholder element: \" + this.settings.button_placeholder_id;\n\t}\n\ttempParent = document.createElement(\"div\");\n\ttempParent.innerHTML = this.getFlashHTML();\n\ttargetElement.parentNode.replaceChild(tempParent.firstChild, targetElement);\n\tif (window[this.movieName] == undefined) {\n\t\twindow[this.movieName] = this.getMovieElement();\n\t}\n};\nSWFUpload.prototype.getFlashHTML = function () {\n\tvar classid = '';\n\tif (KindEditor.IE && KindEditor.V > 8) {\n\t\tclassid = ' classid = \"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\"';\n\t}\n\treturn ['<object id=\"', this.movieName, '\"' + classid + ' type=\"application/x-shockwave-flash\" data=\"', this.settings.flash_url, '\" width=\"', this.settings.button_width, '\" height=\"', this.settings.button_height, '\" class=\"swfupload\">',\n\t\t\t\t'<param name=\"wmode\" value=\"', this.settings.button_window_mode, '\" />',\n\t\t\t\t'<param name=\"movie\" value=\"', this.settings.flash_url, '\" />',\n\t\t\t\t'<param name=\"quality\" value=\"high\" />',\n\t\t\t\t'<param name=\"menu\" value=\"false\" />',\n\t\t\t\t'<param name=\"allowScriptAccess\" value=\"always\" />',\n\t\t\t\t'<param name=\"flashvars\" value=\"' + this.getFlashVars() + '\" />',\n\t\t\t\t'</object>'].join(\"\");\n};\nSWFUpload.prototype.getFlashVars = function () {\n\tvar paramString = this.buildParamString();\n\tvar httpSuccessString = this.settings.http_success.join(\",\");\n\treturn [\"movieName=\", encodeURIComponent(this.movieName),\n\t\t\t\"&uploadURL=\", encodeURIComponent(this.settings.upload_url),\n\t\t\t\"&useQueryString=\", encodeURIComponent(this.settings.use_query_string),\n\t\t\t\"&requeueOnError=\", encodeURIComponent(this.settings.requeue_on_error),\n\t\t\t\"&httpSuccess=\", encodeURIComponent(httpSuccessString),\n\t\t\t\"&assumeSuccessTimeout=\", encodeURIComponent(this.settings.assume_success_timeout),\n\t\t\t\"&params=\", encodeURIComponent(paramString),\n\t\t\t\"&filePostName=\", encodeURIComponent(this.settings.file_post_name),\n\t\t\t\"&fileTypes=\", encodeURIComponent(this.settings.file_types),\n\t\t\t\"&fileTypesDescription=\", encodeURIComponent(this.settings.file_types_description),\n\t\t\t\"&fileSizeLimit=\", encodeURIComponent(this.settings.file_size_limit),\n\t\t\t\"&fileUploadLimit=\", encodeURIComponent(this.settings.file_upload_limit),\n\t\t\t\"&fileQueueLimit=\", encodeURIComponent(this.settings.file_queue_limit),\n\t\t\t\"&debugEnabled=\", encodeURIComponent(this.settings.debug_enabled),\n\t\t\t\"&buttonImageURL=\", encodeURIComponent(this.settings.button_image_url),\n\t\t\t\"&buttonWidth=\", encodeURIComponent(this.settings.button_width),\n\t\t\t\"&buttonHeight=\", encodeURIComponent(this.settings.button_height),\n\t\t\t\"&buttonText=\", encodeURIComponent(this.settings.button_text),\n\t\t\t\"&buttonTextTopPadding=\", encodeURIComponent(this.settings.button_text_top_padding),\n\t\t\t\"&buttonTextLeftPadding=\", encodeURIComponent(this.settings.button_text_left_padding),\n\t\t\t\"&buttonTextStyle=\", encodeURIComponent(this.settings.button_text_style),\n\t\t\t\"&buttonAction=\", encodeURIComponent(this.settings.button_action),\n\t\t\t\"&buttonDisabled=\", encodeURIComponent(this.settings.button_disabled),\n\t\t\t\"&buttonCursor=\", encodeURIComponent(this.settings.button_cursor)\n\t\t].join(\"\");\n};\nSWFUpload.prototype.getMovieElement = function () {\n\tif (this.movieElement == undefined) {\n\t\tthis.movieElement = document.getElementById(this.movieName);\n\t}\n\tif (this.movieElement === null) {\n\t\tthrow \"Could not find Flash element\";\n\t}\n\treturn this.movieElement;\n};\nSWFUpload.prototype.buildParamString = function () {\n\tvar postParams = this.settings.post_params;\n\tvar paramStringPairs = [];\n\tif (typeof(postParams) === \"object\") {\n\t\tfor (var name in postParams) {\n\t\t\tif (postParams.hasOwnProperty(name)) {\n\t\t\t\tparamStringPairs.push(encodeURIComponent(name.toString()) + \"=\" + encodeURIComponent(postParams[name].toString()));\n\t\t\t}\n\t\t}\n\t}\n\treturn paramStringPairs.join(\"&\");\n};\nSWFUpload.prototype.destroy = function () {\n\ttry {\n\t\tthis.cancelUpload(null, false);\n\t\tvar movieElement = null;\n\t\tmovieElement = this.getMovieElement();\n\t\tif (movieElement && typeof(movieElement.CallFunction) === \"unknown\") {\n\t\t\tfor (var i in movieElement) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof(movieElement[i]) === \"function\") {\n\t\t\t\t\t\tmovieElement[i] = null;\n\t\t\t\t\t}\n\t\t\t\t} catch (ex1) {}\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tmovieElement.parentNode.removeChild(movieElement);\n\t\t\t} catch (ex) {}\n\t\t}\n\t\twindow[this.movieName] = null;\n\t\tSWFUpload.instances[this.movieName] = null;\n\t\tdelete SWFUpload.instances[this.movieName];\n\t\tthis.movieElement = null;\n\t\tthis.settings = null;\n\t\tthis.customSettings = null;\n\t\tthis.eventQueue = null;\n\t\tthis.movieName = null;\n\t\treturn true;\n\t} catch (ex2) {\n\t\treturn false;\n\t}\n};\nSWFUpload.prototype.displayDebugInfo = function () {\n\tthis.debug(\n\t\t[\n\t\t\t\"---SWFUpload Instance Info---\\n\",\n\t\t\t\"Version: \", SWFUpload.version, \"\\n\",\n\t\t\t\"Movie Name: \", this.movieName, \"\\n\",\n\t\t\t\"Settings:\\n\",\n\t\t\t\"\\t\", \"upload_url: \", this.settings.upload_url, \"\\n\",\n\t\t\t\"\\t\", \"flash_url: \", this.settings.flash_url, \"\\n\",\n\t\t\t\"\\t\", \"use_query_string: \", this.settings.use_query_string.toString(), \"\\n\",\n\t\t\t\"\\t\", \"requeue_on_error: \", this.settings.requeue_on_error.toString(), \"\\n\",\n\t\t\t\"\\t\", \"http_success: \", this.settings.http_success.join(\", \"), \"\\n\",\n\t\t\t\"\\t\", \"assume_success_timeout: \", this.settings.assume_success_timeout, \"\\n\",\n\t\t\t\"\\t\", \"file_post_name: \", this.settings.file_post_name, \"\\n\",\n\t\t\t\"\\t\", \"post_params: \", this.settings.post_params.toString(), \"\\n\",\n\t\t\t\"\\t\", \"file_types: \", this.settings.file_types, \"\\n\",\n\t\t\t\"\\t\", \"file_types_description: \", this.settings.file_types_description, \"\\n\",\n\t\t\t\"\\t\", \"file_size_limit: \", this.settings.file_size_limit, \"\\n\",\n\t\t\t\"\\t\", \"file_upload_limit: \", this.settings.file_upload_limit, \"\\n\",\n\t\t\t\"\\t\", \"file_queue_limit: \", this.settings.file_queue_limit, \"\\n\",\n\t\t\t\"\\t\", \"debug: \", this.settings.debug.toString(), \"\\n\",\n\t\t\t\"\\t\", \"prevent_swf_caching: \", this.settings.prevent_swf_caching.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_placeholder_id: \", this.settings.button_placeholder_id.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_placeholder: \", (this.settings.button_placeholder ? \"Set\" : \"Not Set\"), \"\\n\",\n\t\t\t\"\\t\", \"button_image_url: \", this.settings.button_image_url.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_width: \", this.settings.button_width.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_height: \", this.settings.button_height.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_text: \", this.settings.button_text.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_text_style: \", this.settings.button_text_style.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_text_top_padding: \", this.settings.button_text_top_padding.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_text_left_padding: \", this.settings.button_text_left_padding.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_action: \", this.settings.button_action.toString(), \"\\n\",\n\t\t\t\"\\t\", \"button_disabled: \", this.settings.button_disabled.toString(), \"\\n\",\n\t\t\t\"\\t\", \"custom_settings: \", this.settings.custom_settings.toString(), \"\\n\",\n\t\t\t\"Event Handlers:\\n\",\n\t\t\t\"\\t\", \"swfupload_loaded_handler assigned: \", (typeof this.settings.swfupload_loaded_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"file_dialog_start_handler assigned: \", (typeof this.settings.file_dialog_start_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"file_queued_handler assigned: \", (typeof this.settings.file_queued_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"file_queue_error_handler assigned: \", (typeof this.settings.file_queue_error_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"upload_start_handler assigned: \", (typeof this.settings.upload_start_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"upload_progress_handler assigned: \", (typeof this.settings.upload_progress_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"upload_error_handler assigned: \", (typeof this.settings.upload_error_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"upload_success_handler assigned: \", (typeof this.settings.upload_success_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"upload_complete_handler assigned: \", (typeof this.settings.upload_complete_handler === \"function\").toString(), \"\\n\",\n\t\t\t\"\\t\", \"debug_handler assigned: \", (typeof this.settings.debug_handler === \"function\").toString(), \"\\n\"\n\t\t].join(\"\")\n\t);\n};\n/* Note: addSetting and getSetting are no longer used by SWFUpload but are included\n\tthe maintain v2 API compatibility\n*/\nSWFUpload.prototype.addSetting = function (name, value, default_value) {\n if (value == undefined) {\n return (this.settings[name] = default_value);\n } else {\n return (this.settings[name] = value);\n\t}\n};\nSWFUpload.prototype.getSetting = function (name) {\n if (this.settings[name] != undefined) {\n return this.settings[name];\n\t}\n return \"\";\n};\nSWFUpload.prototype.callFlash = function (functionName, argumentArray) {\n\targumentArray = argumentArray || [];\n\tvar movieElement = this.getMovieElement();\n\tvar returnValue, returnString;\n\ttry {\n\t\treturnString = movieElement.CallFunction('<invoke name=\"' + functionName + '\" returntype=\"javascript\">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');\n\t\treturnValue = eval(returnString);\n\t} catch (ex) {\n\t\tthrow \"Call to \" + functionName + \" failed\";\n\t}\n\tif (returnValue != undefined && typeof returnValue.post === \"object\") {\n\t\treturnValue = this.unescapeFilePostParams(returnValue);\n\t}\n\treturn returnValue;\n};\n/* *****************************\n\t-- Flash control methods --\n\tYour UI should use these\n\tto operate SWFUpload\n ***************************** */\nSWFUpload.prototype.selectFile = function () {\n\tthis.callFlash(\"SelectFile\");\n};\nSWFUpload.prototype.selectFiles = function () {\n\tthis.callFlash(\"SelectFiles\");\n};\nSWFUpload.prototype.startUpload = function (fileID) {\n\tthis.callFlash(\"StartUpload\", [fileID]);\n};\nSWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) {\n\tif (triggerErrorEvent !== false) {\n\t\ttriggerErrorEvent = true;\n\t}\n\tthis.callFlash(\"CancelUpload\", [fileID, triggerErrorEvent]);\n};\nSWFUpload.prototype.stopUpload = function () {\n\tthis.callFlash(\"StopUpload\");\n};\n/* ************************\n * Settings methods\n * These methods change the SWFUpload settings.\n * SWFUpload settings should not be changed directly on the settings object\n * since many of the settings need to be passed to Flash in order to take\n * effect.\n * *********************** */\nSWFUpload.prototype.getStats = function () {\n\treturn this.callFlash(\"GetStats\");\n};\nSWFUpload.prototype.setStats = function (statsObject) {\n\tthis.callFlash(\"SetStats\", [statsObject]);\n};\nSWFUpload.prototype.getFile = function (fileID) {\n\tif (typeof(fileID) === \"number\") {\n\t\treturn this.callFlash(\"GetFileByIndex\", [fileID]);\n\t} else {\n\t\treturn this.callFlash(\"GetFile\", [fileID]);\n\t}\n};\nSWFUpload.prototype.addFileParam = function (fileID, name, value) {\n\treturn this.callFlash(\"AddFileParam\", [fileID, name, value]);\n};\nSWFUpload.prototype.removeFileParam = function (fileID, name) {\n\tthis.callFlash(\"RemoveFileParam\", [fileID, name]);\n};\nSWFUpload.prototype.setUploadURL = function (url) {\n\tthis.settings.upload_url = url.toString();\n\tthis.callFlash(\"SetUploadURL\", [url]);\n};\nSWFUpload.prototype.setPostParams = function (paramsObject) {\n\tthis.settings.post_params = paramsObject;\n\tthis.callFlash(\"SetPostParams\", [paramsObject]);\n};\nSWFUpload.prototype.addPostParam = function (name, value) {\n\tthis.settings.post_params[name] = value;\n\tthis.callFlash(\"SetPostParams\", [this.settings.post_params]);\n};\nSWFUpload.prototype.removePostParam = function (name) {\n\tdelete this.settings.post_params[name];\n\tthis.callFlash(\"SetPostParams\", [this.settings.post_params]);\n};\nSWFUpload.prototype.setFileTypes = function (types, description) {\n\tthis.settings.file_types = types;\n\tthis.settings.file_types_description = description;\n\tthis.callFlash(\"SetFileTypes\", [types, description]);\n};\nSWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) {\n\tthis.settings.file_size_limit = fileSizeLimit;\n\tthis.callFlash(\"SetFileSizeLimit\", [fileSizeLimit]);\n};\nSWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) {\n\tthis.settings.file_upload_limit = fileUploadLimit;\n\tthis.callFlash(\"SetFileUploadLimit\", [fileUploadLimit]);\n};\nSWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) {\n\tthis.settings.file_queue_limit = fileQueueLimit;\n\tthis.callFlash(\"SetFileQueueLimit\", [fileQueueLimit]);\n};\nSWFUpload.prototype.setFilePostName = function (filePostName) {\n\tthis.settings.file_post_name = filePostName;\n\tthis.callFlash(\"SetFilePostName\", [filePostName]);\n};\nSWFUpload.prototype.setUseQueryString = function (useQueryString) {\n\tthis.settings.use_query_string = useQueryString;\n\tthis.callFlash(\"SetUseQueryString\", [useQueryString]);\n};\nSWFUpload.prototype.setRequeueOnError = function (requeueOnError) {\n\tthis.settings.requeue_on_error = requeueOnError;\n\tthis.callFlash(\"SetRequeueOnError\", [requeueOnError]);\n};\nSWFUpload.prototype.setHTTPSuccess = function (http_status_codes) {\n\tif (typeof http_status_codes === \"string\") {\n\t\thttp_status_codes = http_status_codes.replace(\" \", \"\").split(\",\");\n\t}\n\tthis.settings.http_success = http_status_codes;\n\tthis.callFlash(\"SetHTTPSuccess\", [http_status_codes]);\n};\nSWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) {\n\tthis.settings.assume_success_timeout = timeout_seconds;\n\tthis.callFlash(\"SetAssumeSuccessTimeout\", [timeout_seconds]);\n};\nSWFUpload.prototype.setDebugEnabled = function (debugEnabled) {\n\tthis.settings.debug_enabled = debugEnabled;\n\tthis.callFlash(\"SetDebugEnabled\", [debugEnabled]);\n};\nSWFUpload.prototype.setButtonImageURL = function (buttonImageURL) {\n\tif (buttonImageURL == undefined) {\n\t\tbuttonImageURL = \"\";\n\t}\n\tthis.settings.button_image_url = buttonImageURL;\n\tthis.callFlash(\"SetButtonImageURL\", [buttonImageURL]);\n};\nSWFUpload.prototype.setButtonDimensions = function (width, height) {\n\tthis.settings.button_width = width;\n\tthis.settings.button_height = height;\n\tvar movie = this.getMovieElement();\n\tif (movie != undefined) {\n\t\tmovie.style.width = width + \"px\";\n\t\tmovie.style.height = height + \"px\";\n\t}\n\tthis.callFlash(\"SetButtonDimensions\", [width, height]);\n};\nSWFUpload.prototype.setButtonText = function (html) {\n\tthis.settings.button_text = html;\n\tthis.callFlash(\"SetButtonText\", [html]);\n};\nSWFUpload.prototype.setButtonTextPadding = function (left, top) {\n\tthis.settings.button_text_top_padding = top;\n\tthis.settings.button_text_left_padding = left;\n\tthis.callFlash(\"SetButtonTextPadding\", [left, top]);\n};\nSWFUpload.prototype.setButtonTextStyle = function (css) {\n\tthis.settings.button_text_style = css;\n\tthis.callFlash(\"SetButtonTextStyle\", [css]);\n};\nSWFUpload.prototype.setButtonDisabled = function (isDisabled) {\n\tthis.settings.button_disabled = isDisabled;\n\tthis.callFlash(\"SetButtonDisabled\", [isDisabled]);\n};\nSWFUpload.prototype.setButtonAction = function (buttonAction) {\n\tthis.settings.button_action = buttonAction;\n\tthis.callFlash(\"SetButtonAction\", [buttonAction]);\n};\nSWFUpload.prototype.setButtonCursor = function (cursor) {\n\tthis.settings.button_cursor = cursor;\n\tthis.callFlash(\"SetButtonCursor\", [cursor]);\n};\n/* *******************************\n\tFlash Event Interfaces\n\tThese functions are used by Flash to trigger the various\n\tevents.\n\tAll these functions a Private.\n\tBecause the ExternalInterface library is buggy the event calls\n\tare added to a queue and the queue then executed by a setTimeout.\n\tThis ensures that events are executed in a determinate order and that\n\tthe ExternalInterface bugs are avoided.\n******************************* */\nSWFUpload.prototype.queueEvent = function (handlerName, argumentArray) {\n\tif (argumentArray == undefined) {\n\t\targumentArray = [];\n\t} else if (!(argumentArray instanceof Array)) {\n\t\targumentArray = [argumentArray];\n\t}\n\tvar self = this;\n\tif (typeof this.settings[handlerName] === \"function\") {\n\t\tthis.eventQueue.push(function () {\n\t\t\tthis.settings[handlerName].apply(this, argumentArray);\n\t\t});\n\t\tsetTimeout(function () {\n\t\t\tself.executeNextEvent();\n\t\t}, 0);\n\t} else if (this.settings[handlerName] !== null) {\n\t\tthrow \"Event handler \" + handlerName + \" is unknown or is not a function\";\n\t}\n};\nSWFUpload.prototype.executeNextEvent = function () {\n\tvar f = this.eventQueue ? this.eventQueue.shift() : null;\n\tif (typeof(f) === \"function\") {\n\t\tf.apply(this);\n\t}\n};\nSWFUpload.prototype.unescapeFilePostParams = function (file) {\n\tvar reg = /[$]([0-9a-f]{4})/i;\n\tvar unescapedPost = {};\n\tvar uk;\n\tif (file != undefined) {\n\t\tfor (var k in file.post) {\n\t\t\tif (file.post.hasOwnProperty(k)) {\n\t\t\t\tuk = k;\n\t\t\t\tvar match;\n\t\t\t\twhile ((match = reg.exec(uk)) !== null) {\n\t\t\t\t\tuk = uk.replace(match[0], String.fromCharCode(parseInt(\"0x\" + match[1], 16)));\n\t\t\t\t}\n\t\t\t\tunescapedPost[uk] = file.post[k];\n\t\t\t}\n\t\t}\n\t\tfile.post = unescapedPost;\n\t}\n\treturn file;\n};\nSWFUpload.prototype.testExternalInterface = function () {\n\ttry {\n\t\treturn this.callFlash(\"TestExternalInterface\");\n\t} catch (ex) {\n\t\treturn false;\n\t}\n};\nSWFUpload.prototype.flashReady = function () {\n\tvar movieElement = this.getMovieElement();\n\tif (!movieElement) {\n\t\tthis.debug(\"Flash called back ready but the flash movie can't be found.\");\n\t\treturn;\n\t}\n\tthis.cleanUp(movieElement);\n\tthis.queueEvent(\"swfupload_loaded_handler\");\n};\nSWFUpload.prototype.cleanUp = function (movieElement) {\n\ttry {\n\t\tif (this.movieElement && typeof(movieElement.CallFunction) === \"unknown\") {\n\t\t\tthis.debug(\"Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)\");\n\t\t\tfor (var key in movieElement) {\n\t\t\t\ttry {\n\t\t\t\t\tif (typeof(movieElement[key]) === \"function\") {\n\t\t\t\t\t\tmovieElement[key] = null;\n\t\t\t\t\t}\n\t\t\t\t} catch (ex) {\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch (ex1) {\n\t}\n\twindow[\"__flash__removeCallback\"] = function (instance, name) {\n\t\ttry {\n\t\t\tif (instance) {\n\t\t\t\tinstance[name] = null;\n\t\t\t}\n\t\t} catch (flashEx) {\n\t\t}\n\t};\n};\n/* This is a chance to do something before the browse window opens */\nSWFUpload.prototype.fileDialogStart = function () {\n\tthis.queueEvent(\"file_dialog_start_handler\");\n};\n/* Called when a file is successfully added to the queue. */\nSWFUpload.prototype.fileQueued = function (file) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"file_queued_handler\", file);\n};\n/* Handle errors that occur when an attempt to queue a file fails. */\nSWFUpload.prototype.fileQueueError = function (file, errorCode, message) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"file_queue_error_handler\", [file, errorCode, message]);\n};\n/* Called after the file dialog has closed and the selected files have been queued.\n\tYou could call startUpload here if you want the queued files to begin uploading immediately. */\nSWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) {\n\tthis.queueEvent(\"file_dialog_complete_handler\", [numFilesSelected, numFilesQueued, numFilesInQueue]);\n};\nSWFUpload.prototype.uploadStart = function (file) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"return_upload_start_handler\", file);\n};\nSWFUpload.prototype.returnUploadStart = function (file) {\n\tvar returnValue;\n\tif (typeof this.settings.upload_start_handler === \"function\") {\n\t\tfile = this.unescapeFilePostParams(file);\n\t\treturnValue = this.settings.upload_start_handler.call(this, file);\n\t} else if (this.settings.upload_start_handler != undefined) {\n\t\tthrow \"upload_start_handler must be a function\";\n\t}\n\tif (returnValue === undefined) {\n\t\treturnValue = true;\n\t}\n\treturnValue = !!returnValue;\n\tthis.callFlash(\"ReturnUploadStart\", [returnValue]);\n};\nSWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"upload_progress_handler\", [file, bytesComplete, bytesTotal]);\n};\nSWFUpload.prototype.uploadError = function (file, errorCode, message) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"upload_error_handler\", [file, errorCode, message]);\n};\nSWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"upload_success_handler\", [file, serverData, responseReceived]);\n};\nSWFUpload.prototype.uploadComplete = function (file) {\n\tfile = this.unescapeFilePostParams(file);\n\tthis.queueEvent(\"upload_complete_handler\", file);\n};\n/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the\n internal debug console. You can override this event and have messages written where you want. */\nSWFUpload.prototype.debug = function (message) {\n\tthis.queueEvent(\"debug_handler\", message);\n};\n/* **********************************\n\tDebug Console\n\tThe debug console is a self contained, in page location\n\tfor debug message to be sent. The Debug Console adds\n\titself to the body if necessary.\n\tThe console is automatically scrolled as messages appear.\n\tIf you are using your own debug handler or when you deploy to production and\n\thave debug disabled you can remove these functions to reduce the file size\n\tand complexity.\n********************************** */\nSWFUpload.prototype.debugMessage = function (message) {\n\tif (this.settings.debug) {\n\t\tvar exceptionMessage, exceptionValues = [];\n\t\tif (typeof message === \"object\" && typeof message.name === \"string\" && typeof message.message === \"string\") {\n\t\t\tfor (var key in message) {\n\t\t\t\tif (message.hasOwnProperty(key)) {\n\t\t\t\t\texceptionValues.push(key + \": \" + message[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t\texceptionMessage = exceptionValues.join(\"\\n\") || \"\";\n\t\t\texceptionValues = exceptionMessage.split(\"\\n\");\n\t\t\texceptionMessage = \"EXCEPTION: \" + exceptionValues.join(\"\\nEXCEPTION: \");\n\t\t\tSWFUpload.Console.writeLine(exceptionMessage);\n\t\t} else {\n\t\t\tSWFUpload.Console.writeLine(message);\n\t\t}\n\t}\n};\nSWFUpload.Console = {};\nSWFUpload.Console.writeLine = function (message) {\n\tvar console, documentForm;\n\ttry {\n\t\tconsole = document.getElementById(\"SWFUpload_Console\");\n\t\tif (!console) {\n\t\t\tdocumentForm = document.createElement(\"form\");\n\t\t\tdocument.getElementsByTagName(\"body\")[0].appendChild(documentForm);\n\t\t\tconsole = document.createElement(\"textarea\");\n\t\t\tconsole.id = \"SWFUpload_Console\";\n\t\t\tconsole.style.fontFamily = \"monospace\";\n\t\t\tconsole.setAttribute(\"wrap\", \"off\");\n\t\t\tconsole.wrap = \"off\";\n\t\t\tconsole.style.overflow = \"auto\";\n\t\t\tconsole.style.width = \"700px\";\n\t\t\tconsole.style.height = \"350px\";\n\t\t\tconsole.style.margin = \"5px\";\n\t\t\tdocumentForm.appendChild(console);\n\t\t}\n\t\tconsole.value += message + \"\\n\";\n\t\tconsole.scrollTop = console.scrollHeight - console.clientHeight;\n\t} catch (ex) {\n\t\talert(\"Exception: \" + ex.name + \" Message: \" + ex.message);\n\t}\n};\n})();\n(function() {\n/*\n\tQueue Plug-in\n\tFeatures:\n\t\t*Adds a cancelQueue() method for cancelling the entire queue.\n\t\t*All queued files are uploaded when startUpload() is called.\n\t\t*If false is returned from uploadComplete then the queue upload is stopped.\n\t\t If false is not returned (strict comparison) then the queue upload is continued.\n\t\t*Adds a QueueComplete event that is fired when all the queued files have finished uploading.\n\t\t Set the event handler with the queue_complete_handler setting.\n\t*/\nif (typeof(SWFUpload) === \"function\") {\n\tSWFUpload.queue = {};\n\tSWFUpload.prototype.initSettings = (function (oldInitSettings) {\n\t\treturn function () {\n\t\t\tif (typeof(oldInitSettings) === \"function\") {\n\t\t\t\toldInitSettings.call(this);\n\t\t\t}\n\t\t\tthis.queueSettings = {};\n\t\t\tthis.queueSettings.queue_cancelled_flag = false;\n\t\t\tthis.queueSettings.queue_upload_count = 0;\n\t\t\tthis.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler;\n\t\t\tthis.queueSettings.user_upload_start_handler = this.settings.upload_start_handler;\n\t\t\tthis.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler;\n\t\t\tthis.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler;\n\t\t\tthis.settings.queue_complete_handler = this.settings.queue_complete_handler || null;\n\t\t};\n\t})(SWFUpload.prototype.initSettings);\n\tSWFUpload.prototype.startUpload = function (fileID) {\n\t\tthis.queueSettings.queue_cancelled_flag = false;\n\t\tthis.callFlash(\"StartUpload\", [fileID]);\n\t};\n\tSWFUpload.prototype.cancelQueue = function () {\n\t\tthis.queueSettings.queue_cancelled_flag = true;\n\t\tthis.stopUpload();\n\t\tvar stats = this.getStats();\n\t\twhile (stats.files_queued > 0) {\n\t\t\tthis.cancelUpload();\n\t\t\tstats = this.getStats();\n\t\t}\n\t};\n\tSWFUpload.queue.uploadStartHandler = function (file) {\n\t\tvar returnValue;\n\t\tif (typeof(this.queueSettings.user_upload_start_handler) === \"function\") {\n\t\t\treturnValue = this.queueSettings.user_upload_start_handler.call(this, file);\n\t\t}\n\t\treturnValue = (returnValue === false) ? false : true;\n\t\tthis.queueSettings.queue_cancelled_flag = !returnValue;\n\t\treturn returnValue;\n\t};\n\tSWFUpload.queue.uploadCompleteHandler = function (file) {\n\t\tvar user_upload_complete_handler = this.queueSettings.user_upload_complete_handler;\n\t\tvar continueUpload;\n\t\tif (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) {\n\t\t\tthis.queueSettings.queue_upload_count++;\n\t\t}\n\t\tif (typeof(user_upload_complete_handler) === \"function\") {\n\t\t\tcontinueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true;\n\t\t} else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) {\n\t\t\tcontinueUpload = false;\n\t\t} else {\n\t\t\tcontinueUpload = true;\n\t\t}\n\t\tif (continueUpload) {\n\t\t\tvar stats = this.getStats();\n\t\t\tif (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) {\n\t\t\t\tthis.startUpload();\n\t\t\t} else if (this.queueSettings.queue_cancelled_flag === false) {\n\t\t\t\tthis.queueEvent(\"queue_complete_handler\", [this.queueSettings.queue_upload_count]);\n\t\t\t\tthis.queueSettings.queue_upload_count = 0;\n\t\t\t} else {\n\t\t\t\tthis.queueSettings.queue_cancelled_flag = false;\n\t\t\t\tthis.queueSettings.queue_upload_count = 0;\n\t\t\t}\n\t\t}\n\t};\n}\n})();\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('pagebreak', function(K) {\r\n\tvar self = this;\r\n\tvar name = 'pagebreak';\r\n\tvar pagebreakHtml = K.undef(self.pagebreakHtml, '<hr style=\"page-break-after: always;\" class=\"ke-pagebreak\" />');\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar cmd = self.cmd, range = cmd.range;\r\n\t\tself.focus();\r\n\t\tvar tail = self.newlineTag == 'br' || K.WEBKIT ? '' : '<span id=\"__kindeditor_tail_tag__\"></span>';\r\n\t\tself.insertHtml(pagebreakHtml + tail);\r\n\t\tif (tail !== '') {\r\n\t\t\tvar p = K('#__kindeditor_tail_tag__', self.edit.doc);\r\n\t\t\trange.selectNodeContents(p[0]);\r\n\t\t\tp.removeAttr('id');\r\n\t\t\tcmd.select();\r\n\t\t}\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('plainpaste', function(K) {\r\n\tvar self = this, name = 'plainpaste';\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar lang = self.lang(name + '.'),\r\n\t\t\thtml = '<div style=\"padding:10px 20px;\">' +\r\n\t\t\t\t'<div style=\"margin-bottom:10px;\">' + lang.comment + '</div>' +\r\n\t\t\t\t'<textarea class=\"ke-textarea\" style=\"width:408px;height:260px;\"></textarea>' +\r\n\t\t\t\t'</div>',\r\n\t\t\tdialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 450,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar html = textarea.val();\r\n\t\t\t\t\t\thtml = K.escape(html);\r\n\t\t\t\t\t\thtml = html.replace(/ {2}/g, ' ');\r\n\t\t\t\t\t\tif (self.newlineTag == 'p') {\r\n\t\t\t\t\t\t\thtml = html.replace(/^/, '<p>').replace(/$/, '</p>').replace(/\\n/g, '</p><p>');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\thtml = html.replace(/\\n/g, '<br />$&');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tself.insertHtml(html).hideDialog().focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\ttextarea = K('textarea', dialog.div);\r\n\t\ttextarea[0].focus();\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('preview', function(K) {\r\n\tvar self = this, name = 'preview', undefined;\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar lang = self.lang(name + '.'),\r\n\t\t\thtml = '<div style=\"padding:10px 20px;\">' +\r\n\t\t\t\t'<iframe class=\"ke-textarea\" frameborder=\"0\" style=\"width:708px;height:400px;\"></iframe>' +\r\n\t\t\t\t'</div>',\r\n\t\t\tdialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 750,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html\r\n\t\t\t}),\r\n\t\t\tiframe = K('iframe', dialog.div),\r\n\t\t\tdoc = K.iframeDoc(iframe);\r\n\t\tdoc.open();\r\n\t\tdoc.write(self.fullHtml());\r\n\t\tdoc.close();\r\n\t\tK(doc.body).css('background-color', '#FFF');\r\n\t\tiframe[0].contentWindow.focus();\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('quickformat', function(K) {\r\n\tvar self = this, name = 'quickformat',\r\n\t\tblockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p');\r\n\tfunction getFirstChild(knode) {\r\n\t\tvar child = knode.first();\r\n\t\twhile (child && child.first()) {\r\n\t\t\tchild = child.first();\r\n\t\t}\r\n\t\treturn child;\r\n\t}\r\n\tself.clickToolbar(name, function() {\r\n\t\tself.focus();\r\n\t\tvar doc = self.edit.doc,\r\n\t\t\trange = self.cmd.range,\r\n\t\t\tchild = K(doc.body).first(), next,\r\n\t\t\tnodeList = [], subList = [],\r\n\t\t\tbookmark = range.createBookmark(true);\r\n\t\twhile(child) {\r\n\t\t\tnext = child.next();\r\n\t\t\tvar firstChild = getFirstChild(child);\r\n\t\t\tif (!firstChild || firstChild.name != 'img') {\r\n\t\t\t\tif (blockMap[child.name]) {\r\n\t\t\t\t\tchild.html(child.html().replace(/^(\\s| | )+/ig, ''));\r\n\t\t\t\t\tchild.css('text-indent', '2em');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsubList.push(child);\r\n\t\t\t\t}\r\n\t\t\t\tif (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) {\r\n\t\t\t\t\tif (subList.length > 0) {\r\n\t\t\t\t\t\tnodeList.push(subList);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsubList = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tchild = next;\r\n\t\t}\r\n\t\tK.each(nodeList, function(i, subList) {\r\n\t\t\tvar wrapper = K('<p style=\"text-indent:2em;\"></p>', doc);\r\n\t\t\tsubList[0].before(wrapper);\r\n\t\t\tK.each(subList, function(i, knode) {\r\n\t\t\t\twrapper.append(knode);\r\n\t\t\t});\r\n\t\t});\r\n\t\trange.moveToBookmark(bookmark);\r\n\t\tself.addBookmark();\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('table', function(K) {\r\n\tvar self = this, name = 'table', lang = self.lang(name + '.'), zeroborder = 'ke-zeroborder';\r\n\tfunction _setColor(box, color) {\r\n\t\tcolor = color.toUpperCase();\r\n\t\tbox.css('background-color', color);\r\n\t\tbox.css('color', color === '#000000' ? '#FFFFFF' : '#000000');\r\n\t\tbox.html(color);\r\n\t}\r\n\tvar pickerList = [];\r\n\tfunction _initColorPicker(dialogDiv, colorBox) {\r\n\t\tcolorBox.bind('click,mousedown', function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\t\tfunction removePicker() {\r\n\t\t\tK.each(pickerList, function() {\r\n\t\t\t\tthis.remove();\r\n\t\t\t});\r\n\t\t\tpickerList = [];\r\n\t\t\tK(document).unbind('click,mousedown', removePicker);\r\n\t\t\tdialogDiv.unbind('click,mousedown', removePicker);\r\n\t\t}\r\n\t\tcolorBox.click(function(e) {\r\n\t\t\tremovePicker();\r\n\t\t\tvar box = K(this),\r\n\t\t\t\tpos = box.pos();\r\n\t\t\tvar picker = K.colorpicker({\r\n\t\t\t\tx : pos.x,\r\n\t\t\t\ty : pos.y + box.height(),\r\n\t\t\t\tz : 811214,\r\n\t\t\t\tselectedColor : K(this).html(),\r\n\t\t\t\tcolors : self.colorTable,\r\n\t\t\t\tnoColor : self.lang('noColor'),\r\n\t\t\t\tshadowMode : self.shadowMode,\r\n\t\t\t\tclick : function(color) {\r\n\t\t\t\t\t_setColor(box, color);\r\n\t\t\t\t\tremovePicker();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tpickerList.push(picker);\r\n\t\t\tK(document).bind('click,mousedown', removePicker);\r\n\t\t\tdialogDiv.bind('click,mousedown', removePicker);\r\n\t\t});\r\n\t}\r\n\tfunction _getCellIndex(table, row, cell) {\r\n\t\tvar rowSpanCount = 0;\r\n\t\tfor (var i = 0, len = row.cells.length; i < len; i++) {\r\n\t\t\tif (row.cells[i] == cell) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trowSpanCount += row.cells[i].rowSpan - 1;\r\n\t\t}\r\n\t\treturn cell.cellIndex - rowSpanCount;\r\n\t}\r\n\tself.plugin.table = {\r\n\t\tprop : function(isInsert) {\r\n\t\t\tvar html = [\r\n\t\t\t\t'<div style=\"padding:20px;\">',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keRows\" style=\"width:90px;\">' + lang.cells + '</label>',\r\n\t\t\t\tlang.rows + ' <input type=\"text\" id=\"keRows\" class=\"ke-input-text ke-input-number\" name=\"rows\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\tlang.cols + ' <input type=\"text\" class=\"ke-input-text ke-input-number\" name=\"cols\" value=\"\" maxlength=\"4\" />',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keWidth\" style=\"width:90px;\">' + lang.size + '</label>',\r\n\t\t\t\tlang.width + ' <input type=\"text\" id=\"keWidth\" class=\"ke-input-text ke-input-number\" name=\"width\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\t'<select name=\"widthType\">',\r\n\t\t\t\t'<option value=\"%\">' + lang.percent + '</option>',\r\n\t\t\t\t'<option value=\"px\">' + lang.px + '</option>',\r\n\t\t\t\t'</select> ',\r\n\t\t\t\tlang.height + ' <input type=\"text\" class=\"ke-input-text ke-input-number\" name=\"height\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\t'<select name=\"heightType\">',\r\n\t\t\t\t'<option value=\"%\">' + lang.percent + '</option>',\r\n\t\t\t\t'<option value=\"px\">' + lang.px + '</option>',\r\n\t\t\t\t'</select>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"kePadding\" style=\"width:90px;\">' + lang.space + '</label>',\r\n\t\t\t\tlang.padding + ' <input type=\"text\" id=\"kePadding\" class=\"ke-input-text ke-input-number\" name=\"padding\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\tlang.spacing + ' <input type=\"text\" class=\"ke-input-text ke-input-number\" name=\"spacing\" value=\"\" maxlength=\"4\" />',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keAlign\" style=\"width:90px;\">' + lang.align + '</label>',\r\n\t\t\t\t'<select id=\"keAlign\" name=\"align\">',\r\n\t\t\t\t'<option value=\"\">' + lang.alignDefault + '</option>',\r\n\t\t\t\t'<option value=\"left\">' + lang.alignLeft + '</option>',\r\n\t\t\t\t'<option value=\"center\">' + lang.alignCenter + '</option>',\r\n\t\t\t\t'<option value=\"right\">' + lang.alignRight + '</option>',\r\n\t\t\t\t'</select>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keBorder\" style=\"width:90px;\">' + lang.border + '</label>',\r\n\t\t\t\tlang.borderWidth + ' <input type=\"text\" id=\"keBorder\" class=\"ke-input-text ke-input-number\" name=\"border\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\tlang.borderColor + ' <span class=\"ke-inline-block ke-input-color\"></span>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keBgColor\" style=\"width:90px;\">' + lang.backgroundColor + '</label>',\r\n\t\t\t\t'<span class=\"ke-inline-block ke-input-color\"></span>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'</div>'\r\n\t\t\t].join('');\r\n\t\t\tvar bookmark = self.cmd.range.createBookmark();\r\n\t\t\tvar dialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 500,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tbeforeRemove : function() {\r\n\t\t\t\t\tcolorBox.unbind();\r\n\t\t\t\t},\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar rows = rowsBox.val(),\r\n\t\t\t\t\t\t\tcols = colsBox.val(),\r\n\t\t\t\t\t\t\twidth = widthBox.val(),\r\n\t\t\t\t\t\t\theight = heightBox.val(),\r\n\t\t\t\t\t\t\twidthType = widthTypeBox.val(),\r\n\t\t\t\t\t\t\theightType = heightTypeBox.val(),\r\n\t\t\t\t\t\t\tpadding = paddingBox.val(),\r\n\t\t\t\t\t\t\tspacing = spacingBox.val(),\r\n\t\t\t\t\t\t\talign = alignBox.val(),\r\n\t\t\t\t\t\t\tborder = borderBox.val(),\r\n\t\t\t\t\t\t\tborderColor = K(colorBox[0]).html() || '',\r\n\t\t\t\t\t\t\tbgColor = K(colorBox[1]).html() || '';\r\n\t\t\t\t\t\tif (rows == 0 || !/^\\d+$/.test(rows)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidRows'));\r\n\t\t\t\t\t\t\trowsBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (cols == 0 || !/^\\d+$/.test(cols)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidRows'));\r\n\t\t\t\t\t\t\tcolsBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(width)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidWidth'));\r\n\t\t\t\t\t\t\twidthBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(height)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidHeight'));\r\n\t\t\t\t\t\t\theightBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(padding)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidPadding'));\r\n\t\t\t\t\t\t\tpaddingBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(spacing)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidSpacing'));\r\n\t\t\t\t\t\t\tspacingBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(border)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidBorder'));\r\n\t\t\t\t\t\t\tborderBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (table) {\r\n\t\t\t\t\t\t\tif (width !== '') {\r\n\t\t\t\t\t\t\t\ttable.width(width + widthType);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.css('width', '');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (table[0].width !== undefined) {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('width');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (height !== '') {\r\n\t\t\t\t\t\t\t\ttable.height(height + heightType);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.css('height', '');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (table[0].height !== undefined) {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('height');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttable.css('background-color', bgColor);\r\n\t\t\t\t\t\t\tif (table[0].bgColor !== undefined) {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('bgColor');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (padding !== '') {\r\n\t\t\t\t\t\t\t\ttable[0].cellPadding = padding;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('cellPadding');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (spacing !== '') {\r\n\t\t\t\t\t\t\t\ttable[0].cellSpacing = spacing;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('cellSpacing');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (align !== '') {\r\n\t\t\t\t\t\t\t\ttable[0].align = align;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('align');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (border !== '') {\r\n\t\t\t\t\t\t\t\ttable.attr('border', border);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('border');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (border === '' || border === '0') {\r\n\t\t\t\t\t\t\t\ttable.addClass(zeroborder);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.removeClass(zeroborder);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (borderColor !== '') {\r\n\t\t\t\t\t\t\t\ttable.attr('borderColor', borderColor);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttable.removeAttr('borderColor');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tself.hideDialog().focus();\r\n\t\t\t\t\t\t\tself.cmd.range.moveToBookmark(bookmark);\r\n\t\t\t\t\t\t\tself.cmd.select();\r\n\t\t\t\t\t\t\tself.addBookmark();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar style = '';\r\n\t\t\t\t\t\tif (width !== '') {\r\n\t\t\t\t\t\t\tstyle += 'width:' + width + widthType + ';';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (height !== '') {\r\n\t\t\t\t\t\t\tstyle += 'height:' + height + heightType + ';';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (bgColor !== '') {\r\n\t\t\t\t\t\t\tstyle += 'background-color:' + bgColor + ';';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar html = '<table';\r\n\t\t\t\t\t\tif (style !== '') {\r\n\t\t\t\t\t\t\thtml += ' style=\"' + style + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (padding !== '') {\r\n\t\t\t\t\t\t\thtml += ' cellpadding=\"' + padding + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (spacing !== '') {\r\n\t\t\t\t\t\t\thtml += ' cellspacing=\"' + spacing + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (align !== '') {\r\n\t\t\t\t\t\t\thtml += ' align=\"' + align + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (border !== '') {\r\n\t\t\t\t\t\t\thtml += ' border=\"' + border + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (border === '' || border === '0') {\r\n\t\t\t\t\t\t\thtml += ' class=\"' + zeroborder + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (borderColor !== '') {\r\n\t\t\t\t\t\t\thtml += ' bordercolor=\"' + borderColor + '\"';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thtml += '>';\r\n\t\t\t\t\t\tfor (var i = 0; i < rows; i++) {\r\n\t\t\t\t\t\t\thtml += '<tr>';\r\n\t\t\t\t\t\t\tfor (var j = 0; j < cols; j++) {\r\n\t\t\t\t\t\t\t\thtml += '<td>' + (K.IE ? ' ' : '<br />') + '</td>';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\thtml += '</tr>';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thtml += '</table>';\r\n\t\t\t\t\t\tif (!K.IE) {\r\n\t\t\t\t\t\t\thtml += '<br />';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tself.insertHtml(html);\r\n\t\t\t\t\t\tself.select().hideDialog().focus();\r\n\t\t\t\t\t\tself.addBookmark();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tdiv = dialog.div,\r\n\t\t\trowsBox = K('[name=\"rows\"]', div).val(3),\r\n\t\t\tcolsBox = K('[name=\"cols\"]', div).val(2),\r\n\t\t\twidthBox = K('[name=\"width\"]', div).val(100),\r\n\t\t\theightBox = K('[name=\"height\"]', div),\r\n\t\t\twidthTypeBox = K('[name=\"widthType\"]', div),\r\n\t\t\theightTypeBox = K('[name=\"heightType\"]', div),\r\n\t\t\tpaddingBox = K('[name=\"padding\"]', div).val(2),\r\n\t\t\tspacingBox = K('[name=\"spacing\"]', div).val(0),\r\n\t\t\talignBox = K('[name=\"align\"]', div),\r\n\t\t\tborderBox = K('[name=\"border\"]', div).val(1),\r\n\t\t\tcolorBox = K('.ke-input-color', div);\r\n\t\t\t_initColorPicker(div, colorBox.eq(0));\r\n\t\t\t_initColorPicker(div, colorBox.eq(1));\r\n\t\t\t_setColor(colorBox.eq(0), '#000000');\r\n\t\t\t_setColor(colorBox.eq(1), '');\r\n\t\t\trowsBox[0].focus();\r\n\t\t\trowsBox[0].select();\r\n\t\t\tvar table;\r\n\t\t\tif (isInsert) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttable = self.plugin.getSelectedTable();\r\n\t\t\tif (table) {\r\n\t\t\t\trowsBox.val(table[0].rows.length);\r\n\t\t\t\tcolsBox.val(table[0].rows.length > 0 ? table[0].rows[0].cells.length : 0);\r\n\t\t\t\trowsBox.attr('disabled', true);\r\n\t\t\t\tcolsBox.attr('disabled', true);\r\n\t\t\t\tvar match,\r\n\t\t\t\t\ttableWidth = table[0].style.width || table[0].width,\r\n\t\t\t\t\ttableHeight = table[0].style.height || table[0].height;\r\n\t\t\t\tif (tableWidth !== undefined && (match = /^(\\d+)((?:px|%)*)$/.exec(tableWidth))) {\r\n\t\t\t\t\twidthBox.val(match[1]);\r\n\t\t\t\t\twidthTypeBox.val(match[2]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidthBox.val('');\r\n\t\t\t\t}\r\n\t\t\t\tif (tableHeight !== undefined && (match = /^(\\d+)((?:px|%)*)$/.exec(tableHeight))) {\r\n\t\t\t\t\theightBox.val(match[1]);\r\n\t\t\t\t\theightTypeBox.val(match[2]);\r\n\t\t\t\t}\r\n\t\t\t\tpaddingBox.val(table[0].cellPadding || '');\r\n\t\t\t\tspacingBox.val(table[0].cellSpacing || '');\r\n\t\t\t\talignBox.val(table[0].align || '');\r\n\t\t\t\tborderBox.val(table[0].border === undefined ? '' : table[0].border);\r\n\t\t\t\t_setColor(colorBox.eq(0), K.toHex(table.attr('borderColor') || ''));\r\n\t\t\t\t_setColor(colorBox.eq(1), K.toHex(table[0].style.backgroundColor || table[0].bgColor || ''));\r\n\t\t\t\twidthBox[0].focus();\r\n\t\t\t\twidthBox[0].select();\r\n\t\t\t}\r\n\t\t},\r\n\t\tcellprop : function() {\r\n\t\t\tvar html = [\r\n\t\t\t\t'<div style=\"padding:20px;\">',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keWidth\" style=\"width:90px;\">' + lang.size + '</label>',\r\n\t\t\t\tlang.width + ' <input type=\"text\" id=\"keWidth\" class=\"ke-input-text ke-input-number\" name=\"width\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\t'<select name=\"widthType\">',\r\n\t\t\t\t'<option value=\"%\">' + lang.percent + '</option>',\r\n\t\t\t\t'<option value=\"px\">' + lang.px + '</option>',\r\n\t\t\t\t'</select> ',\r\n\t\t\t\tlang.height + ' <input type=\"text\" class=\"ke-input-text ke-input-number\" name=\"height\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\t'<select name=\"heightType\">',\r\n\t\t\t\t'<option value=\"%\">' + lang.percent + '</option>',\r\n\t\t\t\t'<option value=\"px\">' + lang.px + '</option>',\r\n\t\t\t\t'</select>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keAlign\" style=\"width:90px;\">' + lang.align + '</label>',\r\n\t\t\t\tlang.textAlign + ' <select id=\"keAlign\" name=\"textAlign\">',\r\n\t\t\t\t'<option value=\"\">' + lang.alignDefault + '</option>',\r\n\t\t\t\t'<option value=\"left\">' + lang.alignLeft + '</option>',\r\n\t\t\t\t'<option value=\"center\">' + lang.alignCenter + '</option>',\r\n\t\t\t\t'<option value=\"right\">' + lang.alignRight + '</option>',\r\n\t\t\t\t'</select> ',\r\n\t\t\t\tlang.verticalAlign + ' <select name=\"verticalAlign\">',\r\n\t\t\t\t'<option value=\"\">' + lang.alignDefault + '</option>',\r\n\t\t\t\t'<option value=\"top\">' + lang.alignTop + '</option>',\r\n\t\t\t\t'<option value=\"middle\">' + lang.alignMiddle + '</option>',\r\n\t\t\t\t'<option value=\"bottom\">' + lang.alignBottom + '</option>',\r\n\t\t\t\t'<option value=\"baseline\">' + lang.alignBaseline + '</option>',\r\n\t\t\t\t'</select>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keBorder\" style=\"width:90px;\">' + lang.border + '</label>',\r\n\t\t\t\tlang.borderWidth + ' <input type=\"text\" id=\"keBorder\" class=\"ke-input-text ke-input-number\" name=\"border\" value=\"\" maxlength=\"4\" /> ',\r\n\t\t\t\tlang.borderColor + ' <span class=\"ke-inline-block ke-input-color\"></span>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-dialog-row\">',\r\n\t\t\t\t'<label for=\"keBgColor\" style=\"width:90px;\">' + lang.backgroundColor + '</label>',\r\n\t\t\t\t'<span class=\"ke-inline-block ke-input-color\"></span>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'</div>'\r\n\t\t\t].join('');\r\n\t\t\tvar bookmark = self.cmd.range.createBookmark();\r\n\t\t\tvar dialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 500,\r\n\t\t\t\ttitle : self.lang('tablecell'),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tbeforeRemove : function() {\r\n\t\t\t\t\tcolorBox.unbind();\r\n\t\t\t\t},\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar width = widthBox.val(),\r\n\t\t\t\t\t\t\theight = heightBox.val(),\r\n\t\t\t\t\t\t\twidthType = widthTypeBox.val(),\r\n\t\t\t\t\t\t\theightType = heightTypeBox.val(),\r\n\t\t\t\t\t\t\tpadding = paddingBox.val(),\r\n\t\t\t\t\t\t\tspacing = spacingBox.val(),\r\n\t\t\t\t\t\t\ttextAlign = textAlignBox.val(),\r\n\t\t\t\t\t\t\tverticalAlign = verticalAlignBox.val(),\r\n\t\t\t\t\t\t\tborder = borderBox.val(),\r\n\t\t\t\t\t\t\tborderColor = K(colorBox[0]).html() || '',\r\n\t\t\t\t\t\t\tbgColor = K(colorBox[1]).html() || '';\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(width)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidWidth'));\r\n\t\t\t\t\t\t\twidthBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(height)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidHeight'));\r\n\t\t\t\t\t\t\theightBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!/^\\d*$/.test(border)) {\r\n\t\t\t\t\t\t\talert(self.lang('invalidBorder'));\r\n\t\t\t\t\t\t\tborderBox[0].focus();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcell.css({\r\n\t\t\t\t\t\t\twidth : width !== '' ? (width + widthType) : '',\r\n\t\t\t\t\t\t\theight : height !== '' ? (height + heightType) : '',\r\n\t\t\t\t\t\t\t'background-color' : bgColor,\r\n\t\t\t\t\t\t\t'text-align' : textAlign,\r\n\t\t\t\t\t\t\t'vertical-align' : verticalAlign,\r\n\t\t\t\t\t\t\t'border-width' : border,\r\n\t\t\t\t\t\t\t'border-style' : border !== '' ? 'solid' : '',\r\n\t\t\t\t\t\t\t'border-color' : borderColor\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tself.hideDialog().focus();\r\n\t\t\t\t\t\tself.cmd.range.moveToBookmark(bookmark);\r\n\t\t\t\t\t\tself.cmd.select();\r\n\t\t\t\t\t\tself.addBookmark();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tdiv = dialog.div,\r\n\t\t\twidthBox = K('[name=\"width\"]', div).val(100),\r\n\t\t\theightBox = K('[name=\"height\"]', div),\r\n\t\t\twidthTypeBox = K('[name=\"widthType\"]', div),\r\n\t\t\theightTypeBox = K('[name=\"heightType\"]', div),\r\n\t\t\tpaddingBox = K('[name=\"padding\"]', div).val(2),\r\n\t\t\tspacingBox = K('[name=\"spacing\"]', div).val(0),\r\n\t\t\ttextAlignBox = K('[name=\"textAlign\"]', div),\r\n\t\t\tverticalAlignBox = K('[name=\"verticalAlign\"]', div),\r\n\t\t\tborderBox = K('[name=\"border\"]', div).val(1),\r\n\t\t\tcolorBox = K('.ke-input-color', div);\r\n\t\t\t_initColorPicker(div, colorBox.eq(0));\r\n\t\t\t_initColorPicker(div, colorBox.eq(1));\r\n\t\t\t_setColor(colorBox.eq(0), '#000000');\r\n\t\t\t_setColor(colorBox.eq(1), '');\r\n\t\t\twidthBox[0].focus();\r\n\t\t\twidthBox[0].select();\r\n\t\t\tvar cell = self.plugin.getSelectedCell();\r\n\t\t\tvar match,\r\n\t\t\t\tcellWidth = cell[0].style.width || cell[0].width || '',\r\n\t\t\t\tcellHeight = cell[0].style.height || cell[0].height || '';\r\n\t\t\tif ((match = /^(\\d+)((?:px|%)*)$/.exec(cellWidth))) {\r\n\t\t\t\twidthBox.val(match[1]);\r\n\t\t\t\twidthTypeBox.val(match[2]);\r\n\t\t\t} else {\r\n\t\t\t\twidthBox.val('');\r\n\t\t\t}\r\n\t\t\tif ((match = /^(\\d+)((?:px|%)*)$/.exec(cellHeight))) {\r\n\t\t\t\theightBox.val(match[1]);\r\n\t\t\t\theightTypeBox.val(match[2]);\r\n\t\t\t}\r\n\t\t\ttextAlignBox.val(cell[0].style.textAlign || '');\r\n\t\t\tverticalAlignBox.val(cell[0].style.verticalAlign || '');\r\n\t\t\tvar border = cell[0].style.borderWidth || '';\r\n\t\t\tif (border) {\r\n\t\t\t\tborder = parseInt(border);\r\n\t\t\t}\r\n\t\t\tborderBox.val(border);\r\n\t\t\t_setColor(colorBox.eq(0), K.toHex(cell[0].style.borderColor || ''));\r\n\t\t\t_setColor(colorBox.eq(1), K.toHex(cell[0].style.backgroundColor || ''));\r\n\t\t\twidthBox[0].focus();\r\n\t\t\twidthBox[0].select();\r\n\t\t},\r\n\t\tinsert : function() {\r\n\t\t\tthis.prop(true);\r\n\t\t},\r\n\t\t'delete' : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable();\r\n\t\t\tself.cmd.range.setStartBefore(table[0]).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\ttable.remove();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\tcolinsert : function(offset) {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\tindex = cell.cellIndex + offset;\r\n\t\t\tindex += table.rows[0].cells.length - row.cells.length;\r\n\t\t\tfor (var i = 0, len = table.rows.length; i < len; i++) {\r\n\t\t\t\tvar newRow = table.rows[i],\r\n\t\t\t\t\tnewCell = newRow.insertCell(index);\r\n\t\t\t\tnewCell.innerHTML = K.IE ? '' : '<br />';\r\n\t\t\t\tindex = _getCellIndex(table, newRow, newCell);\r\n\t\t\t}\r\n\t\t\tself.cmd.range.selectNodeContents(cell).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\tcolinsertleft : function() {\r\n\t\t\tthis.colinsert(0);\r\n\t\t},\r\n\t\tcolinsertright : function() {\r\n\t\t\tthis.colinsert(1);\r\n\t\t},\r\n\t\trowinsert : function(offset) {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0];\r\n\t\t\tvar rowIndex = row.rowIndex;\r\n\t\t\tif (offset === 1) {\r\n\t\t\t\trowIndex = row.rowIndex + (cell.rowSpan - 1) + offset;\r\n\t\t\t}\r\n\t\t\tvar newRow = table.insertRow(rowIndex);\r\n\t\t\tfor (var i = 0, len = row.cells.length; i < len; i++) {\r\n\t\t\t\tif (row.cells[i].rowSpan > 1) {\r\n\t\t\t\t\tlen -= row.cells[i].rowSpan - 1;\r\n\t\t\t\t}\r\n\t\t\t\tvar newCell = newRow.insertCell(i);\r\n\t\t\t\tif (offset === 1 && row.cells[i].colSpan > 1) {\r\n\t\t\t\t\tnewCell.colSpan = row.cells[i].colSpan;\r\n\t\t\t\t}\r\n\t\t\t\tnewCell.innerHTML = K.IE ? '' : '<br />';\r\n\t\t\t}\r\n\t\t\tfor (var j = rowIndex; j >= 0; j--) {\r\n\t\t\t\tvar cells = table.rows[j].cells;\r\n\t\t\t\tif (cells.length > i) {\r\n\t\t\t\t\tfor (var k = cell.cellIndex; k >= 0; k--) {\r\n\t\t\t\t\t\tif (cells[k].rowSpan > 1) {\r\n\t\t\t\t\t\t\tcells[k].rowSpan += 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tself.cmd.range.selectNodeContents(cell).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\trowinsertabove : function() {\r\n\t\t\tthis.rowinsert(0);\r\n\t\t},\r\n\t\trowinsertbelow : function() {\r\n\t\t\tthis.rowinsert(1);\r\n\t\t},\r\n\t\trowmerge : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\trowIndex = row.rowIndex,\r\n\t\t\t\tnextRowIndex = rowIndex + cell.rowSpan,\r\n\t\t\t\tnextRow = table.rows[nextRowIndex];\r\n\t\t\tif (table.rows.length <= nextRowIndex) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar cellIndex = cell.cellIndex;\r\n\t\t\tif (nextRow.cells.length <= cellIndex) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar nextCell = nextRow.cells[cellIndex];\r\n\t\t\tif (cell.colSpan !== nextCell.colSpan) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tcell.rowSpan += nextCell.rowSpan;\r\n\t\t\tnextRow.deleteCell(cellIndex);\r\n\t\t\tself.cmd.range.selectNodeContents(cell).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\tcolmerge : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\trowIndex = row.rowIndex,\r\n\t\t\t\tcellIndex = cell.cellIndex,\r\n\t\t\t\tnextCellIndex = cellIndex + 1;\r\n\t\t\tif (row.cells.length <= nextCellIndex) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar nextCell = row.cells[nextCellIndex];\r\n\t\t\tif (cell.rowSpan !== nextCell.rowSpan) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tcell.colSpan += nextCell.colSpan;\r\n\t\t\trow.deleteCell(nextCellIndex);\r\n\t\t\tself.cmd.range.selectNodeContents(cell).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\trowsplit : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\trowIndex = row.rowIndex;\r\n\t\t\tif (cell.rowSpan === 1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar cellIndex = _getCellIndex(table, row, cell);\r\n\t\t\tfor (var i = 1, len = cell.rowSpan; i < len; i++) {\r\n\t\t\t\tvar newRow = table.rows[rowIndex + i],\r\n\t\t\t\t\tnewCell = newRow.insertCell(cellIndex);\r\n\t\t\t\tif (cell.colSpan > 1) {\r\n\t\t\t\t\tnewCell.colSpan = cell.colSpan;\r\n\t\t\t\t}\r\n\t\t\t\tnewCell.innerHTML = K.IE ? '' : '<br />';\r\n\t\t\t\tcellIndex = _getCellIndex(table, newRow, newCell);\r\n\t\t\t}\r\n\t\t\tK(cell).removeAttr('rowSpan');\r\n\t\t\tself.cmd.range.selectNodeContents(cell).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\tcolsplit : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\tcellIndex = cell.cellIndex;\r\n\t\t\tif (cell.colSpan === 1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tfor (var i = 1, len = cell.colSpan; i < len; i++) {\r\n\t\t\t\tvar newCell = row.insertCell(cellIndex + i);\r\n\t\t\t\tif (cell.rowSpan > 1) {\r\n\t\t\t\t\tnewCell.rowSpan = cell.rowSpan;\r\n\t\t\t\t}\r\n\t\t\t\tnewCell.innerHTML = K.IE ? '' : '<br />';\r\n\t\t\t}\r\n\t\t\tK(cell).removeAttr('colSpan');\r\n\t\t\tself.cmd.range.selectNodeContents(cell).collapse(true);\r\n\t\t\tself.cmd.select();\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\tcoldelete : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\tindex = cell.cellIndex;\r\n\t\t\tfor (var i = 0, len = table.rows.length; i < len; i++) {\r\n\t\t\t\tvar newRow = table.rows[i],\r\n\t\t\t\t\tnewCell = newRow.cells[index];\r\n\t\t\t\tif (newCell.colSpan > 1) {\r\n\t\t\t\t\tnewCell.colSpan -= 1;\r\n\t\t\t\t\tif (newCell.colSpan === 1) {\r\n\t\t\t\t\t\tK(newCell).removeAttr('colSpan');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewRow.deleteCell(index);\r\n\t\t\t\t}\r\n\t\t\t\tif (newCell.rowSpan > 1) {\r\n\t\t\t\t\ti += newCell.rowSpan - 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (row.cells.length === 0) {\r\n\t\t\t\tself.cmd.range.setStartBefore(table).collapse(true);\r\n\t\t\t\tself.cmd.select();\r\n\t\t\t\tK(table).remove();\r\n\t\t\t} else {\r\n\t\t\t\tself.cmd.selection(true);\r\n\t\t\t}\r\n\t\t\tself.addBookmark();\r\n\t\t},\r\n\t\trowdelete : function() {\r\n\t\t\tvar table = self.plugin.getSelectedTable()[0],\r\n\t\t\t\trow = self.plugin.getSelectedRow()[0],\r\n\t\t\t\tcell = self.plugin.getSelectedCell()[0],\r\n\t\t\t\trowIndex = row.rowIndex;\r\n\t\t\tfor (var i = cell.rowSpan - 1; i >= 0; i--) {\r\n\t\t\t\ttable.deleteRow(rowIndex + i);\r\n\t\t\t}\r\n\t\t\tif (table.rows.length === 0) {\r\n\t\t\t\tself.cmd.range.setStartBefore(table).collapse(true);\r\n\t\t\t\tself.cmd.select();\r\n\t\t\t\tK(table).remove();\r\n\t\t\t} else {\r\n\t\t\t\tself.cmd.selection(true);\r\n\t\t\t}\r\n\t\t\tself.addBookmark();\r\n\t\t}\r\n\t};\r\n\tself.clickToolbar(name, self.plugin.table.prop);\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('template', function(K) {\r\n\tvar self = this, name = 'template', lang = self.lang(name + '.'),\r\n\t\thtmlPath = self.pluginsPath + name + '/html/';\r\n\tfunction getFilePath(fileName) {\r\n\t\treturn htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION);\r\n\t}\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar lang = self.lang(name + '.'),\r\n\t\t\tarr = ['<div style=\"padding:10px 20px;\">',\r\n\t\t\t\t'<div class=\"ke-header\">',\r\n\t\t\t\t'<div class=\"ke-left\">',\r\n\t\t\t\tlang. selectTemplate + ' <select>'];\r\n\t\t\tK.each(lang.fileList, function(key, val) {\r\n\t\t\t\tarr.push('<option value=\"' + key + '\">' + val + '</option>');\r\n\t\t\t});\r\n\t\t\thtml = [arr.join(''),\r\n\t\t\t\t'</select></div>',\r\n\t\t\t\t'<div class=\"ke-right\">',\r\n\t\t\t\t'<input type=\"checkbox\" id=\"keReplaceFlag\" name=\"replaceFlag\" value=\"1\" /> <label for=\"keReplaceFlag\">' + lang.replaceContent + '</label>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<div class=\"ke-clearfix\"></div>',\r\n\t\t\t\t'</div>',\r\n\t\t\t\t'<iframe class=\"ke-textarea\" frameborder=\"0\" style=\"width:458px;height:260px;background-color:#FFF;\"></iframe>',\r\n\t\t\t\t'</div>'].join('');\r\n\t\tvar dialog = self.createDialog({\r\n\t\t\tname : name,\r\n\t\t\twidth : 500,\r\n\t\t\ttitle : self.lang(name),\r\n\t\t\tbody : html,\r\n\t\t\tyesBtn : {\r\n\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\tclick : function(e) {\r\n\t\t\t\t\tvar doc = K.iframeDoc(iframe);\r\n\t\t\t\t\tself[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tvar selectBox = K('select', dialog.div),\r\n\t\t\tcheckbox = K('[name=\"replaceFlag\"]', dialog.div),\r\n\t\t\tiframe = K('iframe', dialog.div);\r\n\t\tcheckbox[0].checked = true;\r\n\t\tiframe.attr('src', getFilePath(selectBox.val()));\r\n\t\tselectBox.change(function() {\r\n\t\t\tiframe.attr('src', getFilePath(this.value));\r\n\t\t});\r\n\t});\r\n});\r\n\n/*******************************************************************************\r\n* KindEditor - WYSIWYG HTML Editor for Internet\r\n* Copyright (C) 2006-2011 kindsoft.net\r\n*\r\n* @author Roddy <luolonghao@gmail.com>\r\n* @site http://www.kindsoft.net/\r\n* @licence http://www.kindsoft.net/license.php\r\n*******************************************************************************/\r\nKindEditor.plugin('wordpaste', function(K) {\r\n\tvar self = this, name = 'wordpaste';\r\n\tself.clickToolbar(name, function() {\r\n\t\tvar lang = self.lang(name + '.'),\r\n\t\t\thtml = '<div style=\"padding:10px 20px;\">' +\r\n\t\t\t\t'<div style=\"margin-bottom:10px;\">' + lang.comment + '</div>' +\r\n\t\t\t\t'<iframe class=\"ke-textarea\" frameborder=\"0\" style=\"width:408px;height:260px;\"></iframe>' +\r\n\t\t\t\t'</div>',\r\n\t\t\tdialog = self.createDialog({\r\n\t\t\t\tname : name,\r\n\t\t\t\twidth : 450,\r\n\t\t\t\ttitle : self.lang(name),\r\n\t\t\t\tbody : html,\r\n\t\t\t\tyesBtn : {\r\n\t\t\t\t\tname : self.lang('yes'),\r\n\t\t\t\t\tclick : function(e) {\r\n\t\t\t\t\t\tvar str = doc.body.innerHTML;\r\n\t\t\t\t\t\tstr = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags);\r\n\t\t\t\t\t\tself.insertHtml(str).hideDialog().focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tdiv = dialog.div,\r\n\t\t\tiframe = K('iframe', div),\r\n\t\t\tdoc = K.iframeDoc(iframe);\r\n\t\tif (!K.IE) {\r\n\t\t\tdoc.designMode = 'on';\r\n\t\t}\r\n\t\tdoc.open();\r\n\t\tdoc.write('<!doctype html><html><head><title>WordPaste</title></head>');\r\n\t\tdoc.write('<body style=\"background-color:#FFF;font-size:12px;margin:2px;\">');\r\n\t\tif (!K.IE) {\r\n\t\t\tdoc.write('<br />');\r\n\t\t}\r\n\t\tdoc.write('</body></html>');\r\n\t\tdoc.close();\r\n\t\tif (K.IE) {\r\n\t\t\tdoc.body.contentEditable = 'true';\r\n\t\t}\r\n\t\tiframe[0].contentWindow.focus();\r\n\t});\r\n});\r\n\n\nKindEditor.plugin('fixtoolbar', function (K) {\n var self = this;\n if (!self.fixToolBar) {\n return;\n }\n function init() {\n var toolbar = K('.ke-toolbar');\n var originY = toolbar.pos().y;\n K(window).bind('scroll', function () {\n if (toolbar.css('position') == 'fixed') {\n if(document.body.scrollTop - originY < 0){\n toolbar.css('position', 'static');\n toolbar.css('top', 'auto');\n }\n } else {\n if (toolbar.pos().y - document.body.scrollTop < 0) {\n toolbar.css('position', 'fixed');\n toolbar.css('top', 0);\n }\n }\n });\n }\n if (self.isCreated) {\n init();\n } else {\n self.afterCreate(init);\n }\n});\n","module.exports = __WEBPACK_EXTERNAL_MODULE__7203__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"c-button\",attrs:{\"color\":_vm.color,\"size\":_vm.size,\"hollow\":_vm.hollow,\"disabled\":!!_vm.disabled},on:{\"click\":$event => _vm.$emit('click', $event)}},[_c('div',{staticClass:\"flex-center\"},[(_vm.icon)?_c('i',{staticClass:\"tf\",class:_vm.icon}):_vm._e(),_c('span',[_vm._t(\"default\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <button class=\"c-button\" :color=\"color\" :size=\"size\" :hollow=\"hollow\" :disabled=\"!!disabled\" @click=\"$event => $emit('click', $event)\">\r\n\t\t<div class=\"flex-center\">\r\n\t\t\t<i v-if=\"icon\" class=\"tf\" :class=\"icon\"></i>\r\n\t\t\t<span><slot></slot></span>\r\n\t\t</div>\r\n\t</button>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'cButton',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tsize: { // 按钮尺寸(s:小号;m:中号;l:大号)\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: 's'\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcolor: { // 按钮颜色(default: 系统辅色;sys:系统主色;)\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: 'black'\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\thollow: Boolean, // 是否为空心按钮\r\n\t\t\t\r\n\t\t\tdisabled: Boolean, // 禁用\r\n\t\t\t\r\n\t\t\ticon: String // 按钮图标\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-button {\r\n\t\tbox-sizing: border-box;\r\n\t\tposition: relative;\r\n\t\tborder-style: solid;\r\n\t\tborder-width: 1px;\r\n\t\tcolor: #fff;\r\n\t\twhite-space: nowrap;\r\n\t\tcursor: pointer;\r\n\t\t\r\n\t\t&[size=\"s\"] {\r\n\t\t\theight: 28px;\r\n\t\t\tborder-radius: 2px;\r\n\t\t\tpadding: 0 1em;\r\n\t\t}\r\n\t\t\r\n\t\t&[size=\"m\"] {\r\n\t\t\theight: 36px;\r\n\t\t\tpadding: 0 2em;\r\n\t\t}\r\n\t\t\r\n\t\t&[size=\"l\"] {\r\n\t\t\tmin-width: 120px;\r\n\t\t\theight: 40px;\r\n\t\t\tpadding: 0 2em;\r\n\t\t}\r\n\t\t\r\n\t\t&[disabled] {\r\n\t\t\tborder: none !important;\r\n\t\t\tcolor: #999 !important;\r\n\t\t\tbackground: #eee !important;\r\n\t\t\tcursor: not-allowed !important;\r\n\t\t}\r\n\t\t\r\n\t\t.tf {\r\n\t\t\tmargin-right: 5px;\r\n\t\t\tfont-size: 15px;\r\n\t\t}\r\n\t\t\r\n\t\tspan {\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tvertical-align: 1px;\r\n\t\t}\r\n\t}\r\n\t\r\n\tcolorList = ({\r\n\t\tname: 'black',\r\n\t\tnormal: #333,\r\n\t\thover: #000\r\n\t} {\r\n\t\tname: 'gray',\r\n\t\tnormal: #ccc,\r\n\t\thover: #666,\r\n\t\tfont: #333\r\n\t} {\r\n\t\tname: 'red',\r\n\t\tnormal: #E63633,\r\n\t\thover: #f00\r\n\t} {\r\n\t\tname: 'green',\r\n\t\tnormal: #00B578,\r\n\t\thover: #0f0\r\n\t} {\r\n\t\tname: 'blue',\r\n\t\tnormal: #3296FA,\r\n\t\thover: #00f\r\n\t});\r\n\t\r\n\t.c-button\r\n\t\tfor item in colorList\r\n\t\t\t&[color={item.name}]\r\n\t\t\t\tborder-color: item.normal;\r\n\t\t\t\tbackground: item.normal;\r\n\t\t\t\t\r\n\t\t\t\t&:hover\r\n\t\t\t\t\tborder-color: item.hover;\r\n\t\t\t\t\tbackground: item.hover;\r\n\t\t\t\t\r\n\t\t\t\t&[hollow]\r\n\t\t\t\t\tcolor: item.font || item.normal;\r\n\t\t\t\t\tbackground: #fff;\r\n\t\t\t\t\t\r\n\t\t\t\t\t&:hover\r\n\t\t\t\t\t\tcolor: item.fontHover || item.hover;\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./button.vue?vue&type=template&id=73616ebe&scoped=true&\"\nimport script from \"./button.vue?vue&type=script&lang=js&\"\nexport * from \"./button.vue?vue&type=script&lang=js&\"\nimport style0 from \"./button.vue?vue&type=style&index=0&id=73616ebe&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73616ebe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.type != 'hidden'),expression:\"type != 'hidden'\"}],staticClass:\"c-input\",class:{'c-textarea': _vm.type == 'textarea', 'z-dis': _vm.disabled}},[(_vm.type == 'textarea')?_c('div',[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.valueData),expression:\"valueData\"}],ref:\"input\",style:({'padding-bottom': _vm.maxlength ? '20px' : '8px'}),attrs:{\"placeholder\":_vm.placeholder,\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly},domProps:{\"value\":(_vm.valueData)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.valueData=$event.target.value},_vm.inputHandle],\"focus\":_vm.inputHandle,\"blur\":_vm.inputHandle,\"change\":function($event){return _vm.$emit('change')}}}),(_vm.maxlength)?_c('span',{staticClass:\"c-input-length\"},[_vm._v(_vm._s(_vm.valueData.length)+\" / \"+_vm._s(_vm.maxlength))]):_vm._e()]):_c('div',{staticClass:\"flex\"},[(_vm.type == 'stepper' && _vm.stepControls == 'both')?_c('button',{staticClass:\"c-input-step flex-center\",class:{'z-dis': _vm.valueData !== '' && _vm.minRange !== false && _vm.minRange == _vm.valueData},on:{\"click\":function($event){return _vm.stepHandle(-1)}}},[_c('i',{staticClass:\"tf tf-minus\"})]):_vm._e(),((_vm.compType)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.valueData),expression:\"valueData\"}],ref:\"input\",staticClass:\"flex-grow\",attrs:{\"placeholder\":_vm.placeholder,\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.valueData)?_vm._i(_vm.valueData,null)>-1:(_vm.valueData)},on:{\"input\":_vm.inputHandle,\"focus\":_vm.inputHandle,\"blur\":_vm.inputHandle,\"change\":[function($event){var $$a=_vm.valueData,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.valueData=$$a.concat([$$v]))}else{$$i>-1&&(_vm.valueData=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.valueData=$$c}},function($event){return _vm.$emit('change')}]}}):((_vm.compType)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.valueData),expression:\"valueData\"}],ref:\"input\",staticClass:\"flex-grow\",attrs:{\"placeholder\":_vm.placeholder,\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.valueData,null)},on:{\"input\":_vm.inputHandle,\"focus\":_vm.inputHandle,\"blur\":_vm.inputHandle,\"change\":[function($event){_vm.valueData=null},function($event){return _vm.$emit('change')}]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.valueData),expression:\"valueData\"}],ref:\"input\",staticClass:\"flex-grow\",attrs:{\"placeholder\":_vm.placeholder,\"maxlength\":_vm.maxlength,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"type\":_vm.compType},domProps:{\"value\":(_vm.valueData)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.valueData=$event.target.value},_vm.inputHandle],\"focus\":_vm.inputHandle,\"blur\":_vm.inputHandle,\"change\":function($event){return _vm.$emit('change')}}}),(_vm.clear && _vm.valueData)?_c('a',{staticClass:\"c-input-handle clear flex-center\",on:{\"click\":_vm.clearHandle}},[_c('i',{staticClass:\"tf tf-clear\"})]):_vm._e(),(_vm.visible)?_c('a',{staticClass:\"c-input-handle flex-center\",on:{\"click\":function($event){_vm.visibleState = !_vm.visibleState}}},[_c('i',{staticClass:\"tf tf-eyes\",class:{'tf-eyes-close': _vm.visibleState}})]):_vm._e(),_c('div',{staticClass:\"flex-column\"},[(_vm.type == 'stepper')?_c('button',{staticClass:\"c-input-step flex-center flex-grow\",class:{'z-dis': _vm.valueData !== '' && _vm.maxRange !== false && _vm.maxRange == _vm.valueData},on:{\"click\":function($event){return _vm.stepHandle(1)}}},[_c('i',{staticClass:\"tf tf-plus\"})]):_vm._e(),(_vm.type == 'stepper' && _vm.stepControls == 'side')?_c('button',{staticClass:\"c-input-step flex-center flex-grow\",class:{'z-dis': _vm.valueData !== '' && _vm.minRange !== false && _vm.minRange == _vm.valueData},on:{\"click\":function($event){return _vm.stepHandle(-1)}}},[_c('i',{staticClass:\"tf tf-minus\"})]):_vm._e()]),(_vm.unit)?_c('span',{staticClass:\"c-input-unit flex-center\"},[_vm._v(_vm._s(_vm.unit))]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div v-show=\"type != 'hidden'\" class=\"c-input\" :class=\"{'c-textarea': type == 'textarea', 'z-dis': disabled}\">\r\n\t\t<div v-if=\"type == 'textarea'\">\r\n\t\t\t<textarea v-model=\"valueData\" ref=\"input\" :placeholder=\"placeholder\" :maxlength=\"maxlength\" :disabled=\"disabled\" :readonly=\"readonly\"\r\n\t\t\t\t:style=\"{'padding-bottom': maxlength ? '20px' : '8px'}\"\r\n\t\t\t\t@input=\"inputHandle\"\r\n\t\t\t\t@focus=\"inputHandle\"\r\n\t\t\t\t@blur=\"inputHandle\"\r\n\t\t\t\t@change=\"$emit('change')\"\r\n\t\t\t></textarea>\r\n\t\t\t<span v-if=\"maxlength\" class=\"c-input-length\">{{valueData.length}} / {{maxlength}}</span>\r\n\t\t</div>\r\n\t\t<div v-else class=\"flex\">\r\n\t\t\t<button v-if=\"type == 'stepper' && stepControls == 'both'\" class=\"c-input-step flex-center\" :class=\"{'z-dis': valueData !== '' && minRange !== false && minRange == valueData}\" @click=\"stepHandle(-1)\"><i class=\"tf tf-minus\"></i></button>\r\n\t\t\t\r\n\t\t\t<input v-model=\"valueData\" ref=\"input\" :type=\"compType\" class=\"flex-grow\" :placeholder=\"placeholder\" :maxlength=\"maxlength\" :disabled=\"disabled\" :readonly=\"readonly\"\r\n\t\t\t\t@input=\"inputHandle\"\r\n\t\t\t\t@focus=\"inputHandle\"\r\n\t\t\t\t@blur=\"inputHandle\"\r\n\t\t\t\t@change=\"$emit('change')\"\r\n\t\t\t>\r\n\t\t\t<a v-if=\"clear && valueData\" class=\"c-input-handle clear flex-center\" @click=\"clearHandle\"><i class=\"tf tf-clear\"></i></a>\r\n\t\t\t<a v-if=\"visible\" class=\"c-input-handle flex-center\" @click=\"visibleState = !visibleState\"><i class=\"tf tf-eyes\" :class=\"{'tf-eyes-close': visibleState}\"></i></a>\r\n\t\t\t\r\n\t\t\t<div class=\"flex-column\">\r\n\t\t\t\t<button v-if=\"type == 'stepper'\" class=\"c-input-step flex-center flex-grow\" :class=\"{'z-dis': valueData !== '' && maxRange !== false && maxRange == valueData}\" @click=\"stepHandle(1)\"><i class=\"tf tf-plus\"></i></button>\r\n\t\t\t\t<button v-if=\"type == 'stepper' && stepControls == 'side'\" class=\"c-input-step flex-center flex-grow\" :class=\"{'z-dis': valueData !== '' && minRange !== false && minRange == valueData}\" @click=\"stepHandle(-1)\"><i class=\"tf tf-minus\"></i></button>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t<span v-if=\"unit\" class=\"c-input-unit flex-center\">{{unit}}</span>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'cInput',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\ttype: { // 文本框类型(hidden: 隐藏; password: 密码; number: 数字; stepper: 步进器; textarea: 多行文本)\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: 'text'\r\n\t\t\t},\r\n\t\t\tvalue: [Number, String],\r\n\t\t\tname: String,\r\n\t\t\tplaceholder: String,\r\n\t\t\tmaxlength: [Number, String],\r\n\t\t\tdecimal: [Number, String], // 保留小数位数\r\n\t\t\trange: [Number, String, Array], // 数字范围\r\n\t\t\tdisabled: Boolean,\r\n\t\t\treadonly: Boolean,\r\n\t\t\tunit: String, // 显示单位\r\n\t\t\tvisible: Boolean, // 可见密码按钮\r\n\t\t\tclear: { //清空按钮\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\tdefault: true\r\n\t\t\t},\r\n\t\t\tstep: { // 步进器精度\r\n\t\t\t\ttype: [String, Number],\r\n\t\t\t\tdefault: 1\r\n\t\t\t},\r\n\t\t\tstepControls: { // 步进器按钮位置(both: 两侧; side: 一侧)\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: 'both'\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tvalueData: this.value || '',\r\n\t\t\t\tvisibleState: false\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\tcompType() {\r\n\t\t\t\tif (this.type == 'number' || this.visibleState) {\r\n\t\t\t\t\treturn 'text';\r\n\t\t\t\t}\r\n\t\t\t\treturn this.type;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcompRange() {\r\n\t\t\t\treturn this.range\r\n\t\t\t\t\t? typeof this.range == 'string'\r\n\t\t\t\t\t\t? this.range.split(',')\r\n\t\t\t\t\t\t: this.range\r\n\t\t\t\t\t: false;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tminRange() {\r\n\t\t\t\tif (typeof this.compRange == 'object' && this.compRange.length == 2) {\r\n\t\t\t\t\treturn parseFloat(this.compRange[0]);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tmaxRange() {\r\n\t\t\t\treturn this.compRange !== false ? parseFloat(this.compRange[1]) : false;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcompDecimal() {\r\n\t\t\t\tif (this.type == 'number') {\r\n\t\t\t\t\treturn this.decimal || 0;\r\n\t\t\t\t} else if (this.type == 'stepper') {\r\n\t\t\t\t\treturn this.decimal || 99;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.set(val)\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tvalueData() {\r\n\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tset(val = '') {\r\n\t\t\t\tthis.valueData = val.toString();\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.valueData;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tinputHandle(e) {\r\n\t\t\t\tif (this.compDecimal !== false) {\r\n\t\t\t\t\tvar reg = [\r\n\t\t\t\t\t\t[this.compDecimal ? '[^-\\\\d\\\\.]+$' : '[^-\\\\d]+$', ''],\t//过滤非数字、负号、点的输入\r\n\t\t\t\t\t\t['^(-?)0?(\\\\d+)$', '$1$2'],\t\t\t\t\t\t//过滤首位为0的输入\r\n\t\t\t\t\t\t['^(-?)\\\\.$', '$1'],\t\t\t\t\t\t\t//过滤首位为.的输入\r\n\t\t\t\t\t\t['\\\\.(\\\\d*)\\\\.+', '.$1'],\t\t\t\t\t\t//过滤第二个.\r\n\t\t\t\t\t\t['^(\\\\d+\\\\.?\\\\d*)-+', '$1'],\t\t\t\t\t//过滤除第一位之外的-\r\n\t\t\t\t\t\t['^(-\\\\d*\\\\.?\\\\d*)-+', '$1'],\t\t\t\t\t//过滤除第一位之外的-\r\n\t\t\t\t\t\t['^(-?\\\\d+\\\\.\\\\d{' + this.compDecimal + '}).+', '$1']\t//过滤多余小数位\r\n\t\t\t\t\t];\r\n\t\t\t\t\t\r\n\t\t\t\t\treg.forEach(item => {\r\n\t\t\t\t\t\tthis.valueData = this.valueData.toString().replace(new RegExp(item[0]), item[1]);\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (this.valueData !== '' && e.type == 'blur') {\r\n\t\t\t\t\t\tif (this.minRange !== false && this.valueData < this.minRange) {\r\n\t\t\t\t\t\t\tthis.valueData = this.minRange;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (this.maxRange !== false && this.valueData > this.maxRange) {\r\n\t\t\t\t\t\t\tthis.valueData = this.maxRange;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (e.type != 'input') {\r\n\t\t\t\t\tthis.$emit(e.type, e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tclearHandle() {\r\n\t\t\t\tthis.valueData = '';\r\n\t\t\t\tthis.$refs.input.focus();\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tstepHandle(step) {\r\n\t\t\t\tlet valueStep = this.valueData.toString().split('.')[1] || '';\r\n\t\t\t\tlet stepStep = this.step.toString().split('.')[1] || '';\r\n\t\t\t\tlet n = stepStep.length > valueStep.length ? stepStep.length : valueStep.length;\r\n\t\t\t\tthis.valueData = parseFloat(((parseFloat(this.valueData) || 0) + step * parseFloat(this.step)).toFixed(n));\r\n\t\t\t\tthis.inputHandle({\r\n\t\t\t\t\ttype: 'blur'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-input {\r\n\t\tposition: relative;\r\n\t\tbox-sizing: border-box;\r\n\t\tdisplay: inline-block;\r\n\t\twidth: 400px;\r\n\t\theight: 38px;\r\n\t\tborder: 1px solid $unitBorder;\r\n\t\tbackground: #fff;\r\n\t\ttransition: all .1s ease;\r\n\t\t\r\n\t\t&.c-textarea {\r\n\t\t\twidth: 400px;\r\n\t\t\theight: auto;\r\n\t\t}\r\n\t\t\r\n\t\t&:not(.z-dis):hover,\r\n\t\t&:not(.z-dis):hover .c-input-step,\r\n\t\t&:not(.z-dis):hover .c-input-unit {\r\n\t\t\tborder-color: $unitHoverBorder;\r\n\t\t}\r\n\t\t\r\n\t\t&:focus-within,\r\n\t\t&:focus-within .c-input-step,\r\n\t\t&:focus-within .c-input-unit {\r\n\t\t\tborder-color: $unitActiveBorder !important;\r\n\t\t}\r\n\r\n\t\t&.z-dis {\r\n\t\t\tbackground: $unitDisabled;\r\n\t\t\t\r\n\t\t\t&:after {\r\n\t\t\t\tcontent: '';\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tright: 0;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tcursor: not-allowed;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&:hover {\r\n\t\t\t.c-input-handle.clear {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t> div {\r\n\t\t\theight: 100%;\r\n\t\t\tfont-size: 0;\r\n\t\t}\r\n\t\t\r\n\t\ttextarea {\r\n\t\t\tresize: vertical;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 150px;\r\n\t\t\tmin-height: 100px;\r\n\t\t\tborder: none;\r\n\t\t\tpadding: 8px;\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tbackground: none;\r\n\t\t}\r\n\t\t\r\n\t\tinput {\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 100%;\r\n\t\t\tborder: none;\r\n\t\t\tpadding: 0 8px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tbackground: none;\r\n\t\t\t\r\n\t\t\t&:-webkit-autofill {\r\n\t\t\t\t-webkit-box-shadow: 0 0 0px 1000px #fff inset;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&-handle {\r\n\t\t\tmin-width: 34px;\r\n\t\t\theight: 100%;\r\n\t\t\tfont-size: 18px;\r\n\t\t\tcolor: #999;\r\n\t\t\t\r\n\t\t\t&:hover {\r\n\t\t\t\tcolor: #333;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.clear {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\t\r\n\t\t&-unit {\r\n\t\t\theight: 100%;\r\n\t\t\tborder-left: 1px solid $unitBorder;\r\n\t\t\tpadding: 0 8px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\tcolor: #333;\r\n\t\t\tbackground: #FAFAFA;\r\n\t\t\ttransition: all .1s ease;\r\n\t\t}\r\n\t\t\r\n\t\t&-step {\r\n\t\t\tmin-width: 34px;\r\n\t\t\tborder-style: solid;\r\n\t\t\tborder-color: $unitBorder;\r\n\t\t\tborder-width: 0 0 0 1px;\r\n\t\t\tfont-size: 12px;\r\n\t\t\tcolor: #888;\r\n\t\t\tbackground: #FAFAFA;\r\n\t\t\t\r\n\t\t\t&:nth-child(2) {\r\n\t\t\t\tborder-top-width: 1px;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&:hover {\r\n\t\t\t\tcolor: #000;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-dis {\r\n\t\t\t\tcolor: #bbb;\r\n\t\t\t\tcursor: not-allowed;\r\n\t\t\t}\r\n\t\t}\r\n\t\t> div > .c-input-step {\r\n\t\t\tborder-right-width: 1px;\r\n\t\t\tborder-left-width: 0;\r\n\t\t}\r\n\t\t\r\n\t\t&-length {\r\n\t\t\tposition: absolute;\r\n\t\t\tright: 20px;\r\n\t\t\tbottom: 0;\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 12px;\r\n\t\t\tcolor: #bbb;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./input.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./input.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./input.vue?vue&type=template&id=3a00d18a&scoped=true&\"\nimport script from \"./input.vue?vue&type=script&lang=js&\"\nexport * from \"./input.vue?vue&type=script&lang=js&\"\nimport style0 from \"./input.vue?vue&type=style&index=0&id=3a00d18a&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a00d18a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-radio\",class:{'z-chk': _vm.checkState, 'z-dis': _vm.disabledState},on:{\"click\":_vm.checkHandle}},[_c('div'),(_vm.$slots.default)?_c('span',[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\n\r\nfunction createStore(data) {\r\n\treturn new (Vue.extend({\r\n\t\tdata() {\r\n\t\t\treturn data\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tcommit(key, data) {\r\n\t\t\t\tthis[key] = data;\r\n\t\t\t}\r\n\t\t}\r\n\t}))\r\n}\r\n\r\nfunction mapState(data) {\r\n\tconst res = {};\r\n\tdata.forEach(key => {\r\n\t\tres[key] = {\r\n\t\t\tget() {\r\n\t\t\t\treturn this.store[key];\r\n\t\t\t},\r\n\t\t\tset() {}\r\n\t\t}\r\n\t});\r\n\treturn res;\r\n}\r\n\r\nexport {createStore, mapState}","<template>\r\n\t<div class=\"c-radio\" :class=\"{'z-chk': checkState, 'z-dis': disabledState}\" @click=\"checkHandle\">\r\n\t\t<div></div>\r\n\t\t<span v-if=\"$slots.default\"><slot></slot></span>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport {mapState} from '../createStore.js'\r\n\t\r\n\texport default {\r\n\t\tname: 'cRadio',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tvalue: [Number, String],\r\n\t\t\tdisabled: Boolean\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tstore: this.$parent.store\r\n\t\t\t};\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\t...mapState(['valueData', 'groupDisabled']),\r\n\t\t\t\r\n\t\t\tcheckState() {\r\n\t\t\t\treturn this.valueData == this.value;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tdisabledState() {\r\n\t\t\t\treturn this.groupDisabled || this.disabled;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tmethods: {\r\n\t\t\tcheckHandle() {\r\n\t\t\t\tif (this.disabledState) return;\r\n\t\t\t\t\r\n\t\t\t\tthis.store.commit('valueData', this.value);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-radio {\r\n\t\tdisplay: inline-block;\r\n\t\theight: 20px;\r\n\t\tfont-size: 13px;\r\n\t\toverflow: hidden;\r\n\t\tcursor: pointer;\r\n\t\t\r\n\t\t&:not(.z-chk):not(.z-dis):hover {\r\n\t\t\tdiv {\r\n\t\t\t\tborder-color: $unitHoverBorder;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.z-chk {\r\n\t\t\t&:not(.z-dis) {\r\n\t\t\t\tdiv {\r\n\t\t\t\t\tborder-color: #000;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tdiv {\r\n\t\t\t\t&:after {\r\n\t\t\t\t\twidth: 9px;\r\n\t\t\t\t\theight: 9px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tspan {\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&.z-dis {\r\n\t\t\tcursor: not-allowed;\r\n\t\t\t\r\n\t\t\tdiv {\r\n\t\t\t\tbackground: $unitDisabled;\r\n\t\t\t\t\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tbackground: #999;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiv {\r\n\t\t\tfloat: left;\r\n\t\t\tposition: relative;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\twidth: 20px;\r\n\t\t\theight: 20px;\r\n\t\t\tborder: 1px solid #ddd;\r\n\t\t\tborder-radius: 100%;\r\n\t\t\tbackground: #fff;\r\n\t\t\ttransition: all .1s ease;\r\n\t\t\t\r\n\t\t\t&:after {\r\n\t\t\t\tcontent: '';\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tleft: 50%;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\twidth: 0;\r\n\t\t\t\theight: 0;\r\n\t\t\t\tborder-radius: 100%;\r\n\t\t\t\tbackground: #000;\r\n\t\t\t\ttransform: translate(-50%,-50%);\r\n\t\t\t\ttransition: all .1s ease;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tspan {\r\n\t\t\tfloat: left;\r\n\t\t\tmargin-left: 5px;\r\n\t\t\tline-height: 20px;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./radio.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./radio.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./radio.vue?vue&type=template&id=07d956d7&scoped=true&\"\nimport script from \"./radio.vue?vue&type=script&lang=js&\"\nexport * from \"./radio.vue?vue&type=script&lang=js&\"\nimport style0 from \"./radio.vue?vue&type=style&index=0&id=07d956d7&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07d956d7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-radio-group\"},[(_vm.$slots.default)?_vm._t(\"default\"):_vm._l((_vm.options),function(item,i){return _c('c-radio',{key:i,attrs:{\"value\":item.value}},[_vm._v(_vm._s(item.name))])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-radio-group\">\r\n\t\t<slot v-if=\"$slots.default\"></slot>\r\n\t\t<template v-else>\r\n\t\t\t<c-radio v-for=\"(item, i) in options\" :key=\"i\" :value=\"item.value\">{{item.name}}</c-radio>\r\n\t\t</template>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport {createStore, mapState} from '../createStore.js'\r\n\t\r\n\texport default {\r\n\t\tname: 'cRadioGroup',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tvalue: [String, Number],\r\n\t\t\tname: String,\r\n\t\t\tdisabled: Boolean,\r\n\t\t\toptions: Array\r\n\t\t},\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tstore: createStore({\r\n\t\t\t\t\tvalueData: this.value,\r\n\t\t\t\t\tgroupDisabled: this.disabled\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\t...mapState(['valueData'])\r\n\t\t},\r\n\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.set(val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tvalueData() {\r\n\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tdisabled(val) {\r\n\t\t\t\tthis.store.commit('groupDisabled', val);\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tset(val = '') {\r\n\t\t\t\tthis.store.commit('valueData', val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.valueData;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-radio-group {\r\n\t\tdisplay: inline-block;\r\n\t\t\r\n\t\t.c-radio {\r\n\t\t\tmargin: 3px 10px 3px 0;\r\n\t\t\t\r\n\t\t\t&:nth-last-child(1) {\r\n\t\t\t\tmargin-right: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./radio_group.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./radio_group.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./radio_group.vue?vue&type=template&id=ac0a5b94&scoped=true&\"\nimport script from \"./radio_group.vue?vue&type=script&lang=js&\"\nexport * from \"./radio_group.vue?vue&type=script&lang=js&\"\nimport style0 from \"./radio_group.vue?vue&type=style&index=0&id=ac0a5b94&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ac0a5b94\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-checkbox\",class:{'z-chk': _vm.checkState, 'z-dis': _vm.disabledState},on:{\"click\":function($event){return _vm.checkHandle(!_vm.checkState)}}},[_vm._m(0),(_vm.$slots.default)?_c('span',[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex-center\"},[_c('i',{staticClass:\"tf tf-check\"})])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-checkbox\" :class=\"{'z-chk': checkState, 'z-dis': disabledState}\" @click=\"checkHandle(!checkState)\">\r\n\t\t<div class=\"flex-center\"><i class=\"tf tf-check\"></i></div>\r\n\t\t<span v-if=\"$slots.default\"><slot></slot></span>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport {mapState} from '../createStore.js'\r\n\t\r\n\texport default {\r\n\t\tname: 'cCheckbox',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tvalue: [Number, String, Boolean],\r\n\t\t\tdisabled: Boolean\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tinGroup: this.$parent.$options.name == 'cCheckboxGroup',\r\n\t\t\t\tstore: this.$parent.store\r\n\t\t\t};\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\t...mapState(['valueData', 'limit', 'groupDisabled']),\r\n\t\t\t\r\n\t\t\tparseValueData() {\r\n\t\t\t\treturn typeof this.valueData == 'object' ? Array.from(this.valueData, item => item.toString()) : this.valueData.toString() ? this.valueData.toString().split(',') : [];\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcheckState() {\r\n\t\t\t\tif (this.inGroup) {\r\n\t\t\t\t\treturn this.parseValueData.includes(this.value.toString());\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.value;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tdisabledState() {\r\n\t\t\t\tif (this.inGroup) {\r\n\t\t\t\t\treturn this.inGroupDisabled || this.disabled;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.disabled;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\toverflow() {\r\n\t\t\t\treturn !this.checkState && this.limit > 0 && this.parseValueData.length >= this.limit;\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tcheckHandle(state) {\r\n\t\t\t\tif (this.disabledState) return;\r\n\t\t\t\t\r\n\t\t\t\tif (!this.inGroup) {\r\n\t\t\t\t\tthis.$emit('input', state);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (this.overflow) {\r\n\t\t\t\t\tthis.$message({\r\n\t\t\t\t\t\tmessage: `最多只能选择${this.limit}项`\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tlet data;\r\n\t\t\t\tif (state) {\r\n\t\t\t\t\tdata = this.parseValueData.concat([this.value.toString()]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata = this.parseValueData.join(',').split(',');\r\n\t\t\t\t\tdata.splice(data.indexOf(this.value.toString()), 1);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.store.commit('valueData', typeof this.valueData == 'object' ? data : data.join(','));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-checkbox {\r\n\t\tdisplay: inline-block;\r\n\t\theight: 20px;\r\n\t\toverflow: hidden;\r\n\t\tcursor: pointer;\r\n\t\t\r\n\t\t&:not(.z-chk):not(.z-dis):hover {\r\n\t\t\tdiv {\r\n\t\t\t\tborder-color: $unitHoverBorder;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.z-chk {\r\n\t\t\t&:not(.z-dis) {\r\n\t\t\t\tdiv {\r\n\t\t\t\t\ttheme-border-color(main);\r\n\t\t\t\t\ttheme-background(main);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tdiv {\r\n\t\t\t\tfont-size: 13px;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&.z-dis {\r\n\t\t\tcursor: not-allowed;\r\n\t\t\t\r\n\t\t\tdiv {\r\n\t\t\t\tcolor: #999;\r\n\t\t\t\tbackground: $unitDisabled;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiv {\r\n\t\t\tfloat: left;\r\n\t\t\tposition: relative;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\twidth: 20px;\r\n\t\t\theight: 20px;\r\n\t\t\tborder: 1px solid $unitBorder;\r\n\t\t\tfont-size: 0;\r\n\t\t\tcolor: #fff;\r\n\t\t\tbackground: #fff;\r\n\t\t\ttransition: all .1s ease;\r\n\t\t}\r\n\t\t\r\n\t\tspan {\r\n\t\t\tfloat: left;\r\n\t\t\tmargin-left: 5px;\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 13px;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./checkbox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./checkbox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./checkbox.vue?vue&type=template&id=5c30b59c&scoped=true&\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js&\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./checkbox.vue?vue&type=style&index=0&id=5c30b59c&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c30b59c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-checkbox-group\"},[(_vm.$slots.default)?_vm._t(\"default\"):_vm._l((_vm.options),function(item,i){return _c('c-checkbox',{key:i,attrs:{\"value\":item.value}},[_vm._v(_vm._s(item.name))])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-checkbox-group\">\r\n\t\t<slot v-if=\"$slots.default\"></slot>\r\n\t\t<template v-else>\r\n\t\t\t<c-checkbox v-for=\"(item, i) in options\" :key=\"i\" :value=\"item.value\">{{item.name}}</c-checkbox>\r\n\t\t</template>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport {createStore, mapState} from '../createStore.js'\r\n\t\r\n\texport default {\r\n\t\tname: 'cCheckboxGroup',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tvalue: {\r\n\t\t\t\ttype: [String, Number, Array],\r\n\t\t\t\tdefault: ''\r\n\t\t\t},\r\n\t\t\tname: String,\r\n\t\t\tdisabled: Boolean,\r\n\t\t\tlimit: [String, Number],\r\n\t\t\toptions: Array\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tstore: createStore({\r\n\t\t\t\t\tvalueData: this.value,\r\n\t\t\t\t\tlimit: parseInt(this.limit),\r\n\t\t\t\t\tgroupDisabled: this.disabled\r\n\t\t\t\t})\r\n\t\t\t};\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\t...mapState(['valueData'])\r\n\t\t},\r\n\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.set(val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tvalueData() {\r\n\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tlimit(val) {\r\n\t\t\t\tthis.store.commit('limit', val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tdisabled(val) {\r\n\t\t\t\tthis.store.commit('groupDisabled', val);\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tset(val = typeof this.valueData == 'object' ? [] : '') {\r\n\t\t\t\tthis.store.commit('valueData', val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.valueData;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-checkbox-group {\r\n\t\tdisplay: inline-block;\r\n\t\t\r\n\t\t.c-checkbox {\r\n\t\t\tmargin: 3px 10px 3px 0;\r\n\t\t\t\r\n\t\t\t&:nth-last-child(1) {\r\n\t\t\t\tmargin-right: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./checkbox_group.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./checkbox_group.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./checkbox_group.vue?vue&type=template&id=1189f524&scoped=true&\"\nimport script from \"./checkbox_group.vue?vue&type=script&lang=js&\"\nexport * from \"./checkbox_group.vue?vue&type=script&lang=js&\"\nimport style0 from \"./checkbox_group.vue?vue&type=style&index=0&id=1189f524&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1189f524\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-select\",class:{'z-develop': _vm.listPosition, 'z-dis': _vm.disabled},on:{\"click\":_vm.developHandle}},[_c('div',{staticClass:\"c-select-main flex-between-center\"},[_c('span',{staticClass:\"c-select-current flex-grow ellipsis\",class:{'z-empty': _vm.emptyState}},[_vm._v(_vm._s(_vm.emptyState ? _vm.placeholder : _vm.valueName))]),(_vm.clear && _vm.valueData.length)?_c('a',{staticClass:\"c-select-clear flex-center\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clearHandle.apply(null, arguments)}}},[_c('i',{staticClass:\"tf tf-clear\"})]):_vm._e(),_vm._m(0)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.listPosition),expression:\"listPosition\"}],ref:\"list\",staticClass:\"c-select-options\",style:(_vm.listPosition),on:{\"click\":function($event){$event.stopPropagation();}}},[_c('select-list',{attrs:{\"options\":_vm.options,\"multiple\":_vm.multiple}})],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"c-select-angle flex-center\"},[_c('i',{staticClass:\"tf tf-angle-down\"})])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-select\" :class=\"{'z-develop': listPosition, 'z-dis': disabled}\" @click=\"developHandle\">\r\n\t\t<div class=\"c-select-main flex-between-center\">\r\n\t\t\t<span class=\"c-select-current flex-grow ellipsis\" :class=\"{'z-empty': emptyState}\">{{emptyState ? placeholder : valueName}}</span>\r\n\t\t\t\r\n\t\t\t<a v-if=\"clear && valueData.length\" class=\"c-select-clear flex-center\" @click.stop=\"clearHandle\"><i class=\"tf tf-clear\"></i></a>\r\n\t\t\t<span class=\"c-select-angle flex-center\"><i class=\"tf tf-angle-down\"></i></span>\r\n\t\t</div>\r\n\r\n\t\t<div v-show=\"listPosition\" ref=\"list\" class=\"c-select-options\" :style=\"listPosition\" @click.stop>\r\n\t\t\t<select-list :options=\"options\" :multiple=\"multiple\"></select-list>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport {createStore, mapState} from '../createStore.js'\r\n\t\r\n\tfunction render(h, list, level = 0) {\r\n\t\tvar arr = [];\r\n\t\tlist && list.map(item => {\r\n\t\t\tarr = arr.concat([\r\n\t\t\t\t<div class={`flex-center-cross c-select-options-item flex-center-cross ${this.currentValue.includes(item.value.toString()) ? 'z-crt' : ''}`} title={item.name} on-click={() => this.clickHandle(item)}>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlevel ? [\r\n\t\t\t\t\t\t\t<div class=\"c-select-options-item-level tf tf-level-line\" style={`margin-left: ${(level - 1) * 20}px;`}></div>\r\n\t\t\t\t\t\t] : []\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<p class=\"ellipsis flex-grow\">{item.name}</p>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.multiple ? [\r\n\t\t\t\t\t\t\t<i class=\"c-select-options-item-check tf tf-check\"></i>\r\n\t\t\t\t\t\t] : []\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t]).concat(render.call(this, h, item.children, level+1));\r\n\t\t});\r\n\t\t\r\n\t\treturn arr;\r\n\t}\r\n\t\r\n\tconst selectList = {\r\n\t\trender(h) {\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\trender.call(this, h, this.options)\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t)\r\n\t\t},\r\n\t\t\r\n\t\tprops: {\r\n\t\t\toptions: Array,\r\n\t\t\tmultiple: Boolean\r\n\t\t},\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tstore: this.$parent.store\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\t...mapState(['valueData', 'currentData']),\r\n\t\t\t\r\n\t\t\tcurrentValue() {\r\n\t\t\t\treturn Array.from(this.currentData, item => item.value.toString());\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\twatch: {\r\n\t\t\tvalueData() {\r\n\t\t\t\tthis.updateCurrentData();\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\toptions() {\r\n\t\t\t\tthis.updateCurrentData();\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmounted() {\r\n\t\t\tthis.$el.addEventListener('wheel', e => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.updateCurrentData();\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tupdateCurrentData() {\r\n\t\t\t\tlet data = [];\r\n\t\t\t\tlet val = typeof this.valueData == 'object' ? Array.from(this.valueData, item => item.toString()) : this.valueData.toString().split(',');\r\n\t\t\t\t\r\n\t\t\t\tif (val.length) {\r\n\t\t\t\t\t!function loop(list) {\r\n\t\t\t\t\t\tlist.forEach(item => {\r\n\t\t\t\t\t\t\tif (val.includes(item.value.toString())) {\r\n\t\t\t\t\t\t\t\tdata.push(item);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\titem.children && loop(item.children);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}(this.options);\r\n\t\t\t\t}\r\n\t\t\t\tthis.store.commit('currentData', data);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tclickHandle(item) {\r\n\t\t\t\tlet data;\r\n\t\t\t\tif (this.multiple) {\r\n\t\t\t\t\tif (this.currentData.includes(item)) {\r\n\t\t\t\t\t\tdata = Array.from(this.currentData, item => item);\r\n\t\t\t\t\t\tdata.splice(data.indexOf(item), 1);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdata = this.currentData.concat([item]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.store.commit('currentData', data);\r\n\t\t\t\t\t\r\n\t\t\t\t\tdata = Array.from(data, item => item.value);\r\n\t\t\t\t\tthis.store.commit('valueData', typeof this.valueData == 'object' ? data : data.join(','));\r\n\t\t\t\t\tthis.$parent.$emit('change', this.$parent.get());\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!this.currentValue.includes(item.value.toString())) {\r\n\t\t\t\t\t\tthis.store.commit('currentData', [item]);\r\n\t\t\t\t\t\tthis.store.commit('valueData', item.value);\r\n\t\t\t\t\t\tthis.$parent.$emit('change', this.$parent.get());\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.$parent.foldHandle();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\texport default {\r\n\t\tname: 'cSelect',\r\n\t\t\r\n\t\tcomponents: {\r\n\t\t\tselectList\r\n\t\t},\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tname: String,\r\n\t\t\tvalue: {\r\n\t\t\t\ttype: [String, Number, Array],\r\n\t\t\t\tdefault: ''\r\n\t\t\t},\r\n\t\t\tplaceholder: {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: '请选择'\r\n\t\t\t},\r\n\t\t\toptions: {\r\n\t\t\t\ttype: Array,\r\n\t\t\t\tdefault: () => {\r\n\t\t\t\t\treturn [];\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tlistWidth: [Number, String],\r\n\t\t\tlistHeight: {\r\n\t\t\t\ttype: [Number, String],\r\n\t\t\t\tdefault: 300\r\n\t\t\t},\r\n\t\t\tmultiple: Boolean,\r\n\t\t\tdisabled: Boolean,\r\n\t\t\tclear: {\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\tdefault: true\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tstore: createStore({\r\n\t\t\t\t\tvalueData: this.value,\r\n\t\t\t\t\tcurrentData: []\r\n\t\t\t\t}),\r\n\t\t\t\tlistPosition: false\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\t...mapState(['valueData', 'currentData']),\r\n\t\t\t\r\n\t\t\tvalueName() {\r\n\t\t\t\treturn Array.from(this.currentData, item => item.name).join(',');\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\temptyState() {\r\n\t\t\t\treturn !this.valueData || (this.multiple && !this.valueData.length);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\toptionsClone() {\r\n\t\t\t\treturn JSON.parse(JSON.stringify(this.options || []));\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.set(val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tvalueData() {\r\n\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\toptionsClone(val, old) {\r\n\t\t\t\t// console.log(val, old);\r\n\t\t\t\tif (old && old.length > 0) {\r\n\t\t\t\t\tthis.set();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcurrentData(val) {\r\n\t\t\t\t// if (this.multiple) {\r\n\t\t\t\t// \tlet data = Array.from(val, item => item.value);\r\n\t\t\t\t// \tthis.store.commit('valueData', typeof this.valueData == 'object' ? data : data.join(','));\r\n\t\t\t\t// } else {\r\n\t\t\t\t// \tthis.store.commit('valueData', val[0] ? val[0].value : '');\r\n\t\t\t\t// }\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tset(val = this.multiple && typeof this.valueData == 'object' ? [] : '') {\r\n\t\t\t\tthis.store.commit('valueData', val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.valueData;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tgetCurrentData() {\r\n\t\t\t\treturn this.multiple ? this.currentData : this.currentData[0] || {}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tdevelopHandle() {\r\n\t\t\t\tif (this.listPosition || this.disabled) return;\r\n\t\t\t\tthis.listPosition = true;\r\n\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\tlet rect = this.$el.getBoundingClientRect();\r\n\t\t\t\t\tlet listHeight = this.$refs.list.offsetHeight < this.listHeight ? this.$refs.list.offsetHeight : this.listHeight;\r\n\t\t\t\t\tlet up = window.innerHeight - rect.bottom < listHeight;\r\n\t\t\t\t\tthis.listPosition = {\r\n\t\t\t\t\t\tleft: rect.left + 'px',\r\n\t\t\t\t\t\ttop: (up ? rect.top - listHeight + 1 : rect.top + this.$el.offsetHeight - 1) + 'px',\r\n\t\t\t\t\t\twidth: (this.listWidth || this.$el.offsetWidth) + 'px',\r\n\t\t\t\t\t\t'max-height': this.parsePixel(this.listHeight)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\twindow.addEventListener('click', this.foldHandle);\r\n\t\t\t\t\twindow.addEventListener('wheel', this.foldHandle);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tfoldHandle() {\r\n\t\t\t\tthis.listPosition = false;\r\n\t\t\t\twindow.removeEventListener('click', this.foldHandle);\r\n\t\t\t\twindow.removeEventListener('wheel', this.foldHandle);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tclearHandle() {\r\n\t\t\t\tthis.set(typeof this.valueData == 'object' ? [] : '');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\">\r\n\t.c-select {\r\n\t\tbox-sizing: border-box;\r\n\t\tdisplay: inline-block;\r\n\t\twidth: 400px;\r\n\t\theight: 38px;\r\n\t\tborder: 1px solid $unitBorder;\r\n\t\tbackground: #fff;\r\n\t\ttransition: all .1s ease;\r\n\t\t\r\n\t\t&:not(.z-dis):hover {\r\n\t\t\t&:not(.z-develop) {\r\n\t\t\t\tborder-color: $unitHoverBorder;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t.c-select-clear {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\t\r\n\t\t\t\t+ .c-select-angle {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&.z-develop {\r\n\t\t\tborder-color: $unitActiveBorder;\r\n\t\t}\r\n\t\t\r\n\t\t&.z-dis {\r\n\t\t\tbackground: $unitDisabled;\r\n\t\t\t\r\n\t\t\t> div {\r\n\t\t\t\tcursor: not-allowed;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&-main {\r\n\t\t\theight: 100%;\r\n\t\t\tpadding-left: 8px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t&-current {\r\n\t\t\tfont-size: 14px;\r\n\r\n\t\t\t&.z-empty {\r\n\t\t\t\tcolor: #ccc;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&-clear {\r\n\t\t\tdisplay: none;\r\n\t\t\twidth: 34px;\r\n\t\t\theight: 100%;\r\n\t\t\tfont-size: 18px;\r\n\t\t\tcolor: #999;\r\n\t\t\t\r\n\t\t\t&:hover {\r\n\t\t\t\tcolor: #333;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&-angle {\r\n\t\t\twidth: 34px;\r\n\t\t}\r\n\t\t\r\n\t\t&-options {\r\n\t\t\tz-index: 11;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 50%;\r\n\t\t\tleft: 50%;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\twidth: 400px;\r\n\t\t\tborder: 1px solid $unitActiveBorder;\r\n\t\t\toverflow: auto;\r\n\t\t\tbackground: #fff;\r\n\t\t\t\r\n\t\t\t&-item {\r\n\t\t\t\theight: 36px;\r\n\t\t\t\tpadding: 0 8px;\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t\tfont-size: 13px;\r\n\t\t\t\twhite-space: nowrap;\r\n\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\tcursor: pointer;\r\n\r\n\t\t\t\t&:not(.z-crt):hover {\r\n\t\t\t\t\ttheme-color(main);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t&.z-crt {\r\n\t\t\t\t\tcolor: #fff;\r\n\t\t\t\t\ttheme-background(main);\r\n\t\t\t\t\t\r\n\t\t\t\t\t.c-select-options-item-check {\r\n\t\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t&-check {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t\tmargin-left: 8px;\r\n\t\t\t\t\tfont-size: 16px;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t&-level {\r\n\t\t\t\t\twidth: 15px;\r\n\t\t\t\t\tmargin-right: 5px;\r\n\t\t\t\t\ttext-align: right;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./select.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./select.vue?vue&type=template&id=752f2375&\"\nimport script from \"./select.vue?vue&type=script&lang=js&\"\nexport * from \"./select.vue?vue&type=script&lang=js&\"\nimport style0 from \"./select.vue?vue&type=style&index=0&id=752f2375&prod&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-region\"},[_c('div',{staticClass:\"flex\"},[(_vm.level >= 1)?_c('c-select',{ref:\"province\",staticClass:\"flex-grow\",attrs:{\"options\":_vm.provinceOptions,\"placeholder\":\"省\",\"clear\":false},on:{\"change\":function($event){return _vm.changeHandle($event, 'province')}},model:{value:(_vm.valueData.province),callback:function ($$v) {_vm.$set(_vm.valueData, \"province\", $$v)},expression:\"valueData.province\"}}):_vm._e(),(_vm.level >= 2)?_c('c-select',{ref:\"city\",staticClass:\"flex-grow\",attrs:{\"options\":_vm.cityOptions,\"placeholder\":\"市\",\"clear\":false},on:{\"change\":function($event){return _vm.changeHandle($event, 'city')}},model:{value:(_vm.valueData.city),callback:function ($$v) {_vm.$set(_vm.valueData, \"city\", $$v)},expression:\"valueData.city\"}}):_vm._e(),(_vm.level >= 3)?_c('c-select',{ref:\"county\",staticClass:\"flex-grow\",attrs:{\"options\":_vm.countyOptions,\"placeholder\":\"区/县\",\"clear\":false},on:{\"change\":function($event){return _vm.changeHandle($event, 'county')}},model:{value:(_vm.valueData.county),callback:function ($$v) {_vm.$set(_vm.valueData, \"county\", $$v)},expression:\"valueData.county\"}}):_vm._e()],1),_c('c-input',{attrs:{\"placeholder\":\"详细街道地址\"},model:{value:(_vm.valueData.address),callback:function ($$v) {_vm.$set(_vm.valueData, \"address\", $$v)},expression:\"valueData.address\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-region\">\r\n\t\t<div class=\"flex\">\r\n\t\t\t<c-select v-if=\"level >= 1\" v-model=\"valueData.province\" ref=\"province\" class=\"flex-grow\" :options=\"provinceOptions\" placeholder=\"省\" :clear=\"false\" @change=\"changeHandle($event, 'province')\"></c-select>\r\n\t\t\t<c-select v-if=\"level >= 2\" v-model=\"valueData.city\" ref=\"city\" class=\"flex-grow\" :options=\"cityOptions\" placeholder=\"市\" :clear=\"false\" @change=\"changeHandle($event, 'city')\"></c-select>\r\n\t\t\t<c-select v-if=\"level >= 3\" v-model=\"valueData.county\" ref=\"county\" class=\"flex-grow\" :options=\"countyOptions\" placeholder=\"区/县\" :clear=\"false\" @change=\"changeHandle($event, 'county')\"></c-select>\r\n\t\t</div>\r\n\t\t<c-input v-model=\"valueData.address\" placeholder=\"详细街道地址\"></c-input>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport addressJson from '@/data/address.json'\r\n\t\r\n\texport default {\r\n\t\tname: 'cRegion',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tname: String,\r\n\t\t\tvalue: {\r\n\t\t\t\ttype: Object,\r\n\t\t\t\tdefault: () => {\r\n\t\t\t\t\treturn {};\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tprovinceName: String, // 省份字段名\r\n\t\t\tcityName: String, // 城市字段名\r\n\t\t\tcountyName: String, // 区县字段名\r\n\t\t\taddressName: String, // 详细街道字段名\r\n\t\t\tlevel: { // 级别(1:到省;2:到市;3:到区县;)\r\n\t\t\t\ttype: [Number, String],\r\n\t\t\t\tdefault: 3\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tvalueData: {},\r\n\t\t\t\tprovinceOptions: [],\r\n\t\t\t\tcityOptions: [],\r\n\t\t\t\tcountyOptions: []\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.set(val);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tmounted() {\r\n\t\t\tthis.updateOptions('province');\r\n\t\t\tthis.set(this.value);\r\n\t\t},\r\n\r\n\t\tmethods: {\r\n\t\t\tset(val = {}) {\r\n\t\t\t\tthis.$refs.province.set(val.province);\r\n\t\t\t\t\r\n\t\t\t\tif (!val.province || val.province != this.valueData.province) {\r\n\t\t\t\t\tthis.updateOptions('city', val.province, val.city);\r\n\t\t\t\t} else if (this.level >= 2) {\r\n\t\t\t\t\tthis.$refs.city.set(val.city);\r\n\t\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (!val.city || val.city != this.valueData.city) {\r\n\t\t\t\t\tthis.updateOptions('county', val.city, val.county);\r\n\t\t\t\t} else if (this.level == 3) {\r\n\t\t\t\t\tthis.$refs.county.set(val.county);\r\n\t\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.$set(this.valueData, 'address', val.address);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.valueData;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tgetCurrentData() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tprovince: this.$refs.province.getCurrentData(),\r\n\t\t\t\t\tcity: this.$refs.city && this.$refs.city.getCurrentData(),\r\n\t\t\t\t\tcounty: this.$refs.county && this.$refs.county.getCurrentData(),\r\n\t\t\t\t\taddress: this.valueData.address\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tupdateOptions(type, parent, val) {\r\n\t\t\t\tif (this.level == 1 && type == 'city' || this.level != 3 && type == 'county') return;\r\n\t\t\t\tthis[`${type}Options`] = [];\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis[`${type}Options`] = addressJson[parent || 0];\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (type != 'province') {\r\n\t\t\t\t\t\tthis.$refs[type].set(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (this.level == 1 || this.level == 2 && type == 'city' || this.level == 3 && type == 'county') {\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tchangeHandle(val, type) {\r\n\t\t\t\tif (type == 'province') {\r\n\t\t\t\t\tthis.updateOptions('city', val);\r\n\t\t\t\t\tthis.updateOptions('county');\r\n\t\t\t\t} else if (type == 'city') {\r\n\t\t\t\t\tthis.updateOptions('county', val);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t} \r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-region {\r\n\t\tdisplay: inline-block;\r\n\t\twidth: 400px;\r\n\t\t\r\n\t\t>>> .c-select {\r\n\t\t\t&:nth-child(n+2) {\r\n\t\t\t\tmargin-left: 10px;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t>>> .c-input {\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./region.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./region.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./region.vue?vue&type=template&id=13a3d336&scoped=true&\"\nimport script from \"./region.vue?vue&type=script&lang=js&\"\nexport * from \"./region.vue?vue&type=script&lang=js&\"\nimport style0 from \"./region.vue?vue&type=style&index=0&id=13a3d336&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13a3d336\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-file\"},[_c('div',{class:{'flex-start-end': _vm.media}},[(_vm.media)?_c('div',{staticClass:\"c-file-media flex-wrap\"},[(!_vm.parseValueData.length)?_c('div',{staticClass:\"c-file-media-item flex-center empty\",on:{\"click\":_vm.uploadHandle}},[_c('i',{staticClass:\"tf tf-media\"})]):_vm._e(),_vm._l((_vm.parseValueData),function(item,i){return _c('div',{key:item,staticClass:\"c-file-media-item flex-center\",on:{\"click\":function($event){return _vm.$preview({src: item})}}},[(_vm.isVideo(item))?_c('video',{attrs:{\"src\":item}}):_c('img',{attrs:{\"src\":item}}),_c('a',{staticClass:\"flex-center\",on:{\"click\":function($event){$event.stopPropagation();return _vm.removeHandle(i)},\"mousedown\":function($event){$event.stopPropagation();}}},[_c('i',{staticClass:\"tf tf-cross\"})])])})],2):_vm._e(),_c('div',{class:{'flex-column': _vm.media, 'flex-center-cross': !_vm.media}},[_c('c-button',{attrs:{\"color\":\"gray\",\"icon\":_vm.icon,\"hollow\":\"\"},on:{\"click\":_vm.uploadHandle}},[_vm._v(_vm._s(_vm.button))]),(_vm.tip || _vm.$slots.tip || _vm.fileTypeTip)?_c('div',{staticClass:\"c-file-tip\",style:({'margin-top': _vm.media ? '4px' : ''})},[_vm._t(\"tip\",null,{\"type\":_vm.fileTypeTip}),(!_vm.$scopedSlots.tip)?_c('div',{class:{'flex-center': !_vm.media}},[(_vm.tip)?_c('p',[_vm._v(_vm._s(_vm.tip))]):_vm._e(),(_vm.fileTypeTip)?_c('p',[_vm._v(_vm._s(_vm.tip && !_vm.media ? ',' : '')+_vm._s(_vm.fileTypeTip))]):_vm._e()]):_vm._e()],2):_vm._e()],1)]),(!_vm.media)?_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.parseValueData.length),expression:\"parseValueData.length\"}],staticClass:\"c-file-list\"},_vm._l((_vm.parseValueData),function(item,i){return _c('li',{key:i},[_c('span',[_vm._v(_vm._s(_vm.fileName(item)))]),_c('a',{on:{\"click\":function($event){return _vm.removeHandle(i)}}},[_vm._v(\"[删除]\")])])}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-file\">\r\n\t\t<div :class=\"{'flex-start-end': media}\">\r\n\t\t\t<div v-if=\"media\" class=\"c-file-media flex-wrap\">\r\n\t\t\t\t<div v-if=\"!parseValueData.length\" class=\"c-file-media-item flex-center empty\" @click=\"uploadHandle\">\r\n\t\t\t\t\t<i class=\"tf tf-media\"></i>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div v-for=\"(item, i) in parseValueData\" :key=\"item\" class=\"c-file-media-item flex-center\" @click=\"$preview({src: item})\">\r\n\t\t\t\t\t<video v-if=\"isVideo(item)\" :src=\"item\"></video>\r\n\t\t\t\t\t<img v-else :src=\"item\">\r\n\t\t\t\t\t<a class=\"flex-center\" @click.stop=\"removeHandle(i)\" @mousedown.stop><i class=\"tf tf-cross\"></i></a>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t<div :class=\"{'flex-column': media, 'flex-center-cross': !media}\">\r\n\t\t\t\t<c-button color=\"gray\" :icon=\"icon\" hollow @click=\"uploadHandle\">{{button}}</c-button>\r\n\t\t\t\t<div v-if=\"tip || $slots.tip || fileTypeTip\" class=\"c-file-tip\" :style=\"{'margin-top': media ? '4px' : ''}\">\r\n\t\t\t\t\t<slot name=\"tip\" :type=\"fileTypeTip\"></slot>\r\n\t\t\t\t\t<div v-if=\"!$scopedSlots.tip\" :class=\"{'flex-center': !media}\">\r\n\t\t\t\t\t\t<p v-if=\"tip\">{{tip}}</p>\r\n\t\t\t\t\t\t<p v-if=\"fileTypeTip\">{{tip && !media ? ',' : ''}}{{fileTypeTip}}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t\r\n\t\t<ul v-if=\"!media\" v-show=\"parseValueData.length\" class=\"c-file-list\">\r\n\t\t\t<li v-for=\"(item, i) in parseValueData\" :key=\"i\"><span>{{fileName(item)}}</span><a @click=\"removeHandle(i)\">[删除]</a></li>\r\n\t\t</ul>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'cUploadFile',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tname: String,\r\n\t\t\t\r\n\t\t\ttype: [String, Array],\r\n\t\t\t\r\n\t\t\tsize: [String, Number],\r\n\t\t\t\r\n\t\t\tmedia: Boolean,\r\n\t\t\t\r\n\t\t\ticon: {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: 'upload'\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tbutton: {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: '上传文件'\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\ttip: String,\r\n\t\t\t\r\n\t\t\tvalue: {\r\n\t\t\t\ttype: [String, Array],\r\n\t\t\t\tdefault: ''\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tmultiple: Boolean,\r\n\t\t\t\r\n\t\t\tlimit: {\r\n\t\t\t\ttype: [Number, String],\r\n\t\t\t\tdefault: 1\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcustom: Boolean\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tvalueData: this.value\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcomputed: {\r\n\t\t\tparseValueData() {\r\n\t\t\t\treturn this.valueData ? (typeof this.valueData == 'object' ? this.valueData : this.valueData.toString().split(',')) : []\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tfileType() {\r\n\t\t\t\tif (this.type) {\r\n\t\t\t\t\tlet arr = [];\r\n\t\t\t\t\tthis.type.split(',').forEach(item => {\r\n\t\t\t\t\t\tarr = arr.concat({\r\n\t\t\t\t\t\t\timage: ['jpg', 'jpeg', 'png'],\r\n\t\t\t\t\t\t\tvideo: ['mp4'],\r\n\t\t\t\t\t\t\tword: ['doc', 'docx'],\r\n\t\t\t\t\t\t\texcel: ['xls', 'xlsx'],\r\n\t\t\t\t\t\t\tzip: ['zip', '7z', 'rar']\r\n\t\t\t\t\t\t}[item] || [item])\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn arr;\r\n\t\t\t\t}\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tfileTypeTip() {\r\n\t\t\t\tif (this.type) {\r\n\t\t\t\t\tlet arr = [];\r\n\t\t\t\t\tthis.type.split(',').forEach(item => {\r\n\t\t\t\t\t\tarr = arr.concat({\r\n\t\t\t\t\t\t\timage: ['图片'],\r\n\t\t\t\t\t\t\tvideo: ['mp4'],\r\n\t\t\t\t\t\t\tword: ['doc(x)'],\r\n\t\t\t\t\t\t\texcel: ['xls(x)'],\r\n\t\t\t\t\t\t\tzip: ['压缩包']\r\n\t\t\t\t\t\t}[item] || [item])\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn '支持格式:' + arr.join(',');\r\n\t\t\t\t}\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tfileName() {\r\n\t\t\t\treturn path => {\r\n\t\t\t\t\treturn path.substring(path.lastIndexOf('/') + 1);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tisVideo() {\r\n\t\t\t\treturn path => {\r\n\t\t\t\t\treturn path.substring(path.lastIndexOf('.') + 1) == 'mp4';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.set(val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tvalueData() {\r\n\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tset(val = this.limit > 1 && typeof this.valueData == 'object' ? [] : '') {\r\n\t\t\t\tthis.valueData = val;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.valueData;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tremoveHandle(i) {\r\n\t\t\t\tlet data = this.parseValueData.join(',').split(',');\r\n\t\t\t\tdata.splice(i, 1);\r\n\t\t\t\tthis.set(this.limit > 1 && typeof this.valueData == 'object' ? data : data.join(','));\r\n\t\t\t},\r\n\r\n\t\t\tuploadHandle() {\r\n\t\t\t\tif (this.parseValueData.length >= parseInt(this.limit)) {\r\n\t\t\t\t\tthis.$message({\r\n\t\t\t\t\t\tmessage: `最多只能上传${this.limit}个文件`\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (this.custom) {\r\n\t\t\t\t\tthis.$emit('click');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.uploadFile({\r\n\t\t\t\t\t\tfileType: Array.from(this.fileType, item => '.' + item).join(','),\r\n\t\t\t\t\t\tfileSize: this.size,\r\n\t\t\t\t\t\tmultiple: this.multiple || parseInt(this.limit) > 1,\r\n\t\t\t\t\t\tsuccess: data => {\r\n\t\t\t\t\t\t\tif (!this.multiple && this.limit == 1) {\r\n\t\t\t\t\t\t\t\tthis.set(data[0]);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdata = this.parseValueData.concat(data);\r\n\t\t\t\t\t\t\t\tthis.set(typeof this.valueData == 'object' ? data : data.join(','));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-file {\r\n\t\t&-media {\r\n\t\t\tmargin-right: 10px;\r\n\t\t\toverflow: hidden;\r\n\t\t\t\r\n\t\t\t&-item {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\twidth: 80px;\r\n\t\t\t\theight: 80px;\r\n\t\t\t\tborder: 1px solid $unitBorder;\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t\tbackground: #fff;\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t\t\r\n\t\t\t\t&:nth-child(n+2) {\r\n\t\t\t\t\tmargin-left: 10px;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t&.empty {\r\n\t\t\t\t\tfont-size: 36px;\r\n\t\t\t\t\tcolor: $unitHoverBorder;\r\n\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t\r\n\t\t\t\t\t&:hover {\r\n\t\t\t\t\t\tborder-color: $unitHoverBorder;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvideo {\r\n\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\theight: 100%;\r\n\t\t\t\t\tbackground: #000;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\ta {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tright: 0;\r\n\t\t\t\t\ttop: 0;\r\n\t\t\t\t\twidth: 18px;\r\n\t\t\t\t\theight: 18px;\r\n\t\t\t\t\tfont-size: 12px;\r\n\t\t\t\t\tcolor: #fff;\r\n\t\t\t\t\tbackground: rgba(0,0,0,.4);\r\n\t\t\t\t\t\r\n\t\t\t\t\t&:hover {\r\n\t\t\t\t\t\tbackground: #f11;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t>>> .c-button {\r\n\t\t\talign-self: flex-start;\r\n\t\t\tmargin-right: 10px;\r\n\t\t}\r\n\t\t\r\n\t\t&-tip {\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 13px;\r\n\t\t\tcolor: #999;\r\n\t\t\t\r\n\t\t\t> span {\r\n\t\t\t\tmargin-right: 10px;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&-list {\r\n\t\t\tmargin-top: 6px;\r\n\t\t\t\r\n\t\t\tli {\r\n\t\t\t\tline-height: 20px;\r\n\t\t\t\tfont-size: 13px;\r\n\t\t\t\tcolor: #0030FF;\r\n\t\t\t\t\r\n\t\t\t\ta {\r\n\t\t\t\t\tmargin-left: 12px;\r\n\t\t\t\t\tcolor: #f00;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./upload_file.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./upload_file.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./upload_file.vue?vue&type=template&id=2077e74c&scoped=true&\"\nimport script from \"./upload_file.vue?vue&type=script&lang=js&\"\nexport * from \"./upload_file.vue?vue&type=script&lang=js&\"\nimport style0 from \"./upload_file.vue?vue&type=style&index=0&id=2077e74c&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2077e74c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.src)?_c('div',{staticClass:\"c-file flex\"},[_c('i',{staticClass:\"tf tf-fw tf-file\",class:`tf-file-${_vm.suffix}`}),_c('a',{on:{\"click\":_vm.download}},[_vm._v(_vm._s(_vm.fileName))])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div v-if=\"src\" class=\"c-file flex\">\r\n\t\t<i class=\"tf tf-fw tf-file\" :class=\"`tf-file-${suffix}`\"></i>\r\n\t\t<a @click=\"download\">{{fileName}}</a>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'cFile',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tsrc: String\r\n\t\t},\r\n\r\n\t\tcomputed: {\r\n\t\t\tfileName() {\r\n\t\t\t\tif (!this.src) return '';\r\n\t\t\t\tlet path = this.src.split('/');\r\n\t\t\t\treturn path[path.length - 1];\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tsuffix() {\r\n\t\t\t\tif (!this.src) return '';\r\n\t\t\t\tvar arr = this.src.split('.');\r\n\t\t\t\treturn arr[arr.length - 1].toLowerCase();\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tdownload() {\r\n\t\t\t\twindow.open(this.src);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-file {\r\n\t\tpadding: 2px 0;\r\n\t\tline-height: 20px;\r\n\t\t\t\r\n\t\telder({\r\n\t\t\tline-height: 30px\r\n\t\t})\r\n\t\t\r\n\t\t.tf {\r\n\t\t\tmargin-right: 6px;\r\n\t\t\tfont-size: 18px;\r\n\t\t\t\r\n\t\t\telder({\r\n\t\t\t\tfont-size: 20px\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\t\ta {\r\n\t\t\tfont-size: 14px;\r\n\t\t\tcolor: #1492FF;\r\n\t\t\t\r\n\t\t\telder({\r\n\t\t\t\tfont-size: 20px\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./file.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./file.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./file.vue?vue&type=template&id=abb21c70&scoped=true&\"\nimport script from \"./file.vue?vue&type=script&lang=js&\"\nexport * from \"./file.vue?vue&type=script&lang=js&\"\nimport style0 from \"./file.vue?vue&type=style&index=0&id=abb21c70&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"abb21c70\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-editor\",style:({'width': _vm.parsePixel(_vm.width)})},[_c('div',{ref:\"div\",attrs:{\"id\":_vm.id}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-editor\" :style=\"{'width': parsePixel(width)}\">\r\n\t\t<div ref=\"div\" :id=\"id\"></div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\timport '@/assets/script/lib/kindeditor/kindeditor-all.js'\r\n\timport '@/assets/script/lib/kindeditor/themes/default/default.css'\r\n\r\n\texport default {\r\n\t\tname: 'cEditor',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tname: String,\r\n\t\t\twidth: {\r\n\t\t\t\ttype: [String, Number],\r\n\t\t\t\tdefault: '100%'\r\n\t\t\t},\r\n\t\t\theight: {\r\n\t\t\t\ttype: [String, Number],\r\n\t\t\t\tdefault: 300\r\n\t\t\t},\r\n\t\t\tvalue: String\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tid: `KindEditor${this._uid}`\r\n\t\t\t};\r\n\t\t},\r\n\t\t\r\n\t\twatch: {\r\n\t\t\tvalue(val) {\r\n\t\t\t\tthis.editor.html(val);\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmounted() {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (!this.editor) {\r\n\t\t\t\t\tthis.create();\r\n\t\t\t\t}\r\n\t\t\t\tthis.set(this.value);\r\n\t\t\t});\r\n\t\t},\r\n\t\t\r\n\t\tactivated() {\r\n\t\t\tthis.destroy();\r\n\t\t\tthis.create();\r\n\t\t},\r\n\t\t\r\n\t\tbeforeDestroy() {\r\n\t\t\tthis.destroy();\r\n\t\t},\r\n\r\n\t\tmethods: {\r\n\t\t\tset(val = '') {\r\n\t\t\t\tthis.editor.html(val);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tget() {\r\n\t\t\t\treturn this.editor.html();\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcreate() {\r\n\t\t\t\tthis.editor = KindEditor.create('#' + this.id, {\r\n\t\t\t\t\twidth: '100%',\r\n\t\t\t\t\theight: this.height,\r\n\t\t\t\t\tresizeType: 1,\r\n\t\t\t\t\tafterBlur: () => {\r\n\t\t\t\t\t\tthis.$emit('input', this.get());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tdestroy() {\r\n\t\t\t\tthis.editor && this.editor.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./editor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./editor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./editor.vue?vue&type=template&id=746a589a&\"\nimport script from \"./editor.vue?vue&type=script&lang=js&\"\nexport * from \"./editor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}]},[_c('div',{staticClass:\"popup-mask an an-fadein\",class:{'an-fadeout': !_vm.active},staticStyle:{\"z-index\":\"101\"}}),_c('div',{ref:\"wrapper\",staticClass:\"c-dialog-wrapper\",attrs:{\"mode\":_vm.mode}},[_c('div',{staticClass:\"c-dialog flex-column an\",class:{[_vm.animate]: _vm.active, 'an-fadeout': !_vm.active},style:({'width': _vm.parsePixel(_vm.compWidth)}),attrs:{\"mode\":_vm.mode,\"confirm\":_vm.confirm}},[(_vm.title !== false)?_c('div',{staticClass:\"c-dialog-head\"},[_c('p',[_vm._v(_vm._s(_vm.title))])]):_vm._e(),(_vm.closeButton)?_c('div',{staticClass:\"c-dialog-close flex-center\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"tf tf-cross\"})]):_vm._e(),_c('div',{ref:\"content\",class:{'flex-grow': _vm.mode == 'slide'},style:({'height': _vm.parsePixel(_vm.compHeight), 'padding-bottom': _vm.oddHeight ? '1px' : '', 'overflow': _vm.compHeight == 'auto' ? '' : 'auto'})},[_vm._t(\"default\")],2),(_vm.button)?_c('div',{staticClass:\"c-dialog-button flex-center-cross flex-end-center\"},[(_vm.$slots.button)?_vm._t(\"button\"):[_c('c-button',{attrs:{\"size\":\"m\"},on:{\"click\":function($event){return _vm.buttonHandle('resolve')}}},[_vm._v(_vm._s(_vm.buttonName))]),(_vm.cancelButton)?_c('c-button',{attrs:{\"color\":\"black\",\"size\":\"m\",\"hollow\":\"\"},on:{\"click\":function($event){return _vm.buttonHandle('cancel')}}},[_vm._v(_vm._s(_vm.cancelButtonnName))]):_vm._e()]],2):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div v-show=\"show\">\r\n\t\t<div class=\"popup-mask an an-fadein\" :class=\"{'an-fadeout': !active}\" style=\"z-index: 101;\"></div>\r\n\t\t<div ref=\"wrapper\" class=\"c-dialog-wrapper\" :mode=\"mode\">\r\n\t\t\t<div class=\"c-dialog flex-column an\" :class=\"{[animate]: active, 'an-fadeout': !active}\" :mode=\"mode\" :confirm=\"confirm\" :style=\"{'width': parsePixel(compWidth)}\">\r\n\t\t\t\t<div v-if=\"title !== false\" class=\"c-dialog-head\">\r\n\t\t\t\t\t<p>{{title}}</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div v-if=\"closeButton\" class=\"c-dialog-close flex-center\" @click=\"close\"><i class=\"tf tf-cross\"></i></div>\r\n\t\t\t\t<div ref=\"content\" :class=\"{'flex-grow': mode == 'slide'}\" :style=\"{'height': parsePixel(compHeight), 'padding-bottom': oddHeight ? '1px' : '', 'overflow': compHeight == 'auto' ? '' : 'auto'}\">\r\n\t\t\t\t\t<slot></slot>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div v-if=\"button\" class=\"c-dialog-button flex-center-cross flex-end-center\">\r\n\t\t\t\t\t<slot v-if=\"$slots.button\" name=\"button\"></slot>\r\n\t\t\t\t\t<template v-else>\r\n\t\t\t\t\t\t<c-button size=\"m\" @click=\"buttonHandle('resolve')\">{{buttonName}}</c-button>\r\n\t\t\t\t\t\t<c-button v-if=\"cancelButton\" color=\"black\" size=\"m\" hollow @click=\"buttonHandle('cancel')\">{{cancelButtonnName}}</c-button>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'cDialog',\r\n\t\t\r\n\t\tprops: {\r\n\t\t\tmode: { // 打开模式(popup: 渐显; slide: 侧滑)\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: 'popup'\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tconfirm: Boolean,\r\n\t\t\t\r\n\t\t\ttitle: {\r\n\t\t\t\ttype: [String, Boolean],\r\n\t\t\t\tdefault: ''\r\n\t\t\t},\r\n\r\n\t\t\twidth: [Number, String],\r\n\r\n\t\t\theight: {\r\n\t\t\t\ttype: [Number, String],\r\n\t\t\t\tdefault: 'auto'\r\n\t\t\t},\r\n\r\n\t\t\tcloseButton: {\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\tdefault: true\r\n\t\t\t},\r\n\r\n\t\t\tbutton: {\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\tdefault: true\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tbuttonName: {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: '确定'\r\n\t\t\t},\r\n\r\n\t\t\tcancelButton: {\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\tdefault: true\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcancelButtonnName: {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: '取消'\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tshow: false,\r\n\t\t\t\tactive: false,\r\n\t\t\t\toddHeight: false\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\tcompWidth() {\r\n\t\t\t\treturn this.width || {\r\n\t\t\t\t\tpopup: 750,\r\n\t\t\t\t\tslide: 600\r\n\t\t\t\t}[this.mode];\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tcompHeight() {\r\n\t\t\t\treturn this.mode == 'slide' ? 0 : this.height;\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tanimate() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpopup: 'an-popup',\r\n\t\t\t\t\tslide: 'an-slidein'\r\n\t\t\t\t}[this.mode];\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmounted() {\r\n\t\t\tthis._observer = new MutationObserver(this.updateOddHeight);\r\n\t\t\tthis._observer.observe(this.$refs.content, {\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tsubtree: true\r\n\t\t\t});\r\n\t\t},\r\n\t\t\r\n\t\tbeforeDestroy() {\r\n\t\t\tthis._observer.disconnect();\r\n\t\t},\r\n\r\n\t\tmethods: {\r\n\t\t\tupdateOddHeight() {\r\n\t\t\t\tif (this.show) {\r\n\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\tthis.oddHeight = (this.$refs.wrapper.getBoundingClientRect().height - (this.oddHeight ? 1 : 0)) % 2 == 1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\topen() {\r\n\t\t\t\tthis.active = true;\r\n\t\t\t\tthis.show = true;\r\n\t\t\t\tthis.updateOddHeight();\r\n\t\t\t},\r\n\r\n\t\t\tclose() {\r\n\t\t\t\tthis.active = false;\r\n\t\t\t\tthis.$emit('close');\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.show = false;\r\n\t\t\t\t}, 250);\r\n\t\t\t},\r\n\r\n\t\t\tbuttonHandle(state) {\r\n\t\t\t\tlet stop = false;\r\n\t\t\t\tthis.$emit(state, () => {\r\n\t\t\t\t\tstop = true;\r\n\t\t\t\t});\r\n\t\t\t\t!stop && this.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-dialog {\r\n\t\tbackground: #fff;\r\n\t\t\r\n\t\t&[confirm] {\r\n\t\t\tborder-radius: 4px;\r\n\t\t\t\r\n\t\t\t.c-dialog-button {\r\n\t\t\t\theight: 54px;\r\n\t\t\t\tpadding: 0 14px;\r\n\t\t\t\t\r\n\t\t\t\t>>> .c-button {\r\n\t\t\t\t\tmin-width: 72px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&[mode=popup] {\r\n\t\t\tborder-radius: 10px;\r\n\t\t}\r\n\t\t\r\n\t\t&[mode=slide] {\r\n\t\t\theight: 100%;\r\n\t\t}\r\n\t\t\r\n\t\t&-wrapper {\r\n\t\t\tz-index: 101;\r\n\t\t\tposition: fixed;\r\n\t\t\t\r\n\t\t\t&[mode=\"popup\"] {\r\n\t\t\t\tleft: 50%;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\ttransform: translate(-50%, -50%);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&[mode=slide] {\r\n\t\t\t\tright: 0;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&-head {\r\n\t\t\tline-height: 60px;\r\n\t\t\tborder-bottom: 1px solid $line;\r\n\t\t\t\r\n\t\t\tp {\r\n\t\t\t\tfont-size: 18px;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\ttext-indent: 30px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&-close {\r\n\t\t\tz-index: 1;\r\n\t\t\tposition: absolute;\r\n\t\t\tright: 10px;\r\n\t\t\ttop: 10px;\r\n\t\t\twidth: 40px;\r\n\t\t\theight: 40px;\r\n\t\t\tfont-size: 18px;\r\n\t\t\tcolor: #999;\r\n\t\t\tcursor: pointer;\r\n\t\t\ttransition: all .3s ease;\r\n\t\t\t\r\n\t\t\t&:hover {\r\n\t\t\t\tcolor: $deleteHover;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&-button {\r\n\t\t\theight: 60px;\r\n\t\t\tborder-top: 1px solid $line;\r\n\t\t\tpadding: 0 20px;\r\n\t\t\t\r\n\t\t\t>>> .c-button {\r\n\t\t\t\tpadding: 0 20px;\r\n\t\t\t\tmargin-left: 12px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./dialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dialog.vue?vue&type=template&id=a69b8388&scoped=true&\"\nimport script from \"./dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./dialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./dialog.vue?vue&type=style&index=0&id=a69b8388&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a69b8388\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div></div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'loading',\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tmessage: '', // 消息内容\r\n\t\t\t\ttimeout: 10000 // 自动消失时长\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcreated() {\r\n\t\t\tthis._$message = this.$message({\r\n\t\t\t\ttype: 'loading',\r\n\t\t\t\tmessage: this.message,\r\n\t\t\t\ttimeout: this.timeout,\r\n\t\t\t\tmask: true\r\n\t\t\t});\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tclose() {\r\n\t\t\t\tthis._$message.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./loading.vue?vue&type=template&id=1786b91e&\"\nimport script from \"./loading.vue?vue&type=script&lang=js&\"\nexport * from \"./loading.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.mask)?_c('div',{staticClass:\"popup-mask\",staticStyle:{\"z-index\":\"999\"},attrs:{\"invisible\":\"\"}}):_vm._e(),_c('div',{staticClass:\"c-message flex flex-center an\",class:{'an-fadein': _vm.active, 'an-fadeout': !_vm.active},style:({'min-width': _vm.type == 'loading' ? 'auto' : ''})},[_c('i',{staticClass:\"tf tf-message\",class:_vm.type ? `tf-message-${_vm.type}` : ''}),(_vm.message)?_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.message)}}):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div>\r\n\t\t<div v-if=\"mask\" class=\"popup-mask\" invisible style=\"z-index: 999;\"></div>\r\n\t\t<div class=\"c-message flex flex-center an\" :class=\"{'an-fadein': active, 'an-fadeout': !active}\" :style=\"{'min-width': type == 'loading' ? 'auto' : ''}\">\r\n\t\t\t<i class=\"tf tf-message\" :class=\"type ? `tf-message-${type}` : ''\"></i>\r\n\t\t\t<p v-if=\"message\" v-html=\"message\"></p>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'message',\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\ttype: '', // 消息类型 (success: 成功; fail: 失败; warn: 警告;)\r\n\t\t\t\tmessage: '', // 消息内容\r\n\t\t\t\ttimeout: 2500, // 自动消失时长\r\n\t\t\t\tmask: false, // 是否显示遮罩\r\n\t\t\t\tactive: true\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmounted() {\r\n\t\t\twindow._$messageVm && window._$messageVm.close();\r\n\t\t\twindow._$messageVm = this;\r\n\t\t\tthis.timeout && (this._timer = setTimeout(this.close, this.timeout));\r\n\t\t},\r\n\r\n\t\tmethods: {\r\n\t\t\tclose() {\r\n\t\t\t\tthis.active = false;\r\n\t\t\t\tclearTimeout(this._timer);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.$destroy();\r\n\t\t\t\t\tthis.$el.remove();\r\n\t\t\t\t}, 250);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-message {\r\n\t\tz-index: 999;\r\n\t\tposition: fixed;\r\n\t\tleft: 50%;\r\n\t\ttop: 50%;\r\n\t\tmax-width: 15em;\r\n\t\tmin-width: 8em;\r\n\t\tborder-radius: 4px;\r\n\t\tpadding: 14px;\r\n\t\tcolor: #fff;\r\n\t\tbackground: rgba(0,0,0,.7);\r\n\t\ttransform: translate(-50%, -50%);\r\n\t\t\r\n\t\t.tf {\r\n\t\t\theight: 24px;\r\n\t\t\tfont-size: 24px;\r\n\t\t}\r\n\r\n\t\tp {\r\n\t\t\tmargin-left: 10px;\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\ttext-align: center;\r\n\t\t\tword-break: break-all;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./message.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./message.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./message.vue?vue&type=template&id=54a8762f&scoped=true&\"\nimport script from \"./message.vue?vue&type=script&lang=js&\"\nexport * from \"./message.vue?vue&type=script&lang=js&\"\nimport style0 from \"./message.vue?vue&type=style&index=0&id=54a8762f&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54a8762f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"c-notice an\",class:{'an-slidein': _vm.active, 'an-fadeout': !_vm.active},style:({'margin-top': _vm.active ? '' : -_vm.height + 'px'})},[_c('div',{staticClass:\"flex\"},[_c('i',{staticClass:\"icon tf tf-message\",class:_vm.type ? `tf-message-${_vm.type}` : '',attrs:{\"color\":\"\"}}),_c('div',{staticClass:\"flex-grow\"},[_c('p',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"content\",domProps:{\"innerHTML\":_vm._s(_vm.message)}})])]),(_vm.button)?_c('div',{staticClass:\"button\"},_vm._l((_vm.button),function(item,i){return _c('a',{key:i,on:{\"click\":function($event){return _vm.buttonHandle(item)}}},[_vm._v(_vm._s(item.name))])}),0):_vm._e(),_c('a',{staticClass:\"close flex-center\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"tf tf-cross\"})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<div class=\"c-notice an\" :class=\"{'an-slidein': active, 'an-fadeout': !active}\" :style=\"{'margin-top': active ? '' : -height + 'px'}\">\r\n\t\t<div class=\"flex\">\r\n\t\t\t<i class=\"icon tf tf-message\" :class=\"type ? `tf-message-${type}` : ''\" color></i>\r\n\t\t\t<div class=\"flex-grow\">\r\n\t\t\t\t<p class=\"title\">{{title}}</p>\r\n\t\t\t\t<div v-html=\"message\" class=\"content\"></div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div v-if=\"button\" class=\"button\">\r\n\t\t\t<a v-for=\"(item, i) in button\" :key=\"i\" @click=\"buttonHandle(item)\">{{item.name}}</a>\r\n\t\t</div>\r\n\t\t<a class=\"close flex-center\" @click=\"close\"><i class=\"tf tf-cross\"></i></a>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'notice',\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\ttype: '', // 通知类型 (success: 成功; fail: 失败; warn: 警告;)\r\n\t\t\t\ttitle: '', // 通知标题\r\n\t\t\t\tmessage: '', // 通知内容\r\n\t\t\t\ttimeout: 10000, // 自动消失时长\r\n\t\t\t\tbutton: false, // 按钮\r\n\t\t\t\tactive: true,\r\n\t\t\t\theight: 0\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmounted() {\r\n\t\t\tthis.$nextTick(() => {\r\n\t\t\t\tthis.height = this.$el.clientHeight;\r\n\t\t\t});\r\n\t\t\tthis.timeout && (this._timer = setTimeout(this.close, this.timeout));\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tclose() {\r\n\t\t\t\tthis.active = false;\r\n\t\t\t\tclearTimeout(this._timer);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.$destroy();\r\n\t\t\t\t\tthis.$el.remove();\r\n\t\t\t\t}, 450);\r\n\t\t\t},\r\n\t\t\t\r\n\t\t\tbuttonHandle(item) {\r\n\t\t\t\titem.callback();\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-notice {\r\n\t\tposition: relative;\r\n\t\tbox-sizing: border-box;\r\n\t\twidth: 330px;\r\n\t\tborder-radius: 4px;\r\n\t\tpadding: 14px 20px;\r\n\t\tmargin: 12px 10px 0 0;\r\n\t\tbackground: rgba(255,255,255,.95);\r\n\t\tbox-shadow: 0 0 6px 0 rgba(0,0,0,.15);\r\n\t\ttransition: margin .4s ease;\r\n\t\t\r\n\t\t.icon {\r\n\t\t\tmargin-right: 14px;\r\n\t\t\tfont-size: 26px;\r\n\t\t}\r\n\r\n\t\t.title {\r\n\t\t\tmargin-right: 20px;\r\n\t\t\tline-height: 26px;\r\n\t\t\tfont-size: 16px;\r\n\t\t\tfont-weight: bold;\r\n\t\t\tcolor: #333;\r\n\t\t\t\r\n\t\t\t& + .content {\r\n\t\t\t\tmargin-top: 6px;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t.content {\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tword-break: break-all;\r\n\t\t\tcolor: #333;\r\n\t\t}\r\n\t\t\r\n\t\t.button {\r\n\t\t\tmargin-top: 14px;\r\n\t\t\ttext-align: right;\r\n\t\t\t\r\n\t\t\ta {\r\n\t\t\t\tmargin-left: 1em;\r\n\t\t\t\tfont-size: 13px;\r\n\t\t\t\tcolor: $link;\r\n\t\t\t\t\r\n\t\t\t\t&:hover {\r\n\t\t\t\t\tcolor: $linkHover;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t.close {\r\n\t\t\tposition: absolute;\r\n\t\t\tright: 10px;\r\n\t\t\ttop: 10px;\r\n\t\t\twidth: 30px;\r\n\t\t\theight: 30px;\r\n\t\t\ttransition: all .3s ease;\r\n\t\t\t\r\n\t\t\t&:hover {\r\n\t\t\t\tcolor: $deleteHover;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./notice.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./notice.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./notice.vue?vue&type=template&id=4669efae&scoped=true&\"\nimport script from \"./notice.vue?vue&type=script&lang=js&\"\nexport * from \"./notice.vue?vue&type=script&lang=js&\"\nimport style0 from \"./notice.vue?vue&type=style&index=0&id=4669efae&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4669efae\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('c-dialog',{ref:\"dialog\",attrs:{\"confirm\":\"\",\"title\":false,\"width\":\"450\",\"close-button\":false}},[_c('div',{staticClass:\"c-confirm flex\"},[_c('i',{staticClass:\"icon tf\",class:_vm.type ? `tf-message-${_vm.type}` : '',attrs:{\"color\":\"\"}}),_c('div',{staticClass:\"flex-grow\"},[_c('p',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"content\",domProps:{\"innerHTML\":_vm._s(_vm.message)}})])]),_c('template',{slot:\"button\"},[_c('c-button',{attrs:{\"width\":\"72\",\"height\":\"34\",\"size\":\"m\"},on:{\"click\":function($event){return _vm.buttonHandle('resolve')}}},[_vm._v(_vm._s(_vm.buttonName))]),(_vm.cancelButton)?_c('c-button',{attrs:{\"width\":\"72\",\"height\":\"34\",\"size\":\"m\",\"color\":\"black\",\"hollow\":\"\"},on:{\"click\":function($event){return _vm.buttonHandle('cancel')}}},[_vm._v(_vm._s(_vm.cancelButtonName))]):_vm._e()],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<c-dialog ref=\"dialog\" confirm :title=\"false\" width=\"450\" :close-button=\"false\">\r\n\t\t<div class=\"c-confirm flex\">\r\n\t\t\t<i class=\"icon tf\" :class=\"type ? `tf-message-${type}` : ''\" color></i>\r\n\t\t\t<div class=\"flex-grow\">\r\n\t\t\t\t<p class=\"title\">{{title}}</p>\r\n\t\t\t\t<div v-html=\"message\" class=\"content\"></div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t\t\r\n\t\t<template slot=\"button\">\r\n\t\t\t<c-button width=\"72\" height=\"34\" size=\"m\" @click=\"buttonHandle('resolve')\">{{buttonName}}</c-button>\r\n\t\t\t<c-button v-if=\"cancelButton\" width=\"72\" height=\"34\" size=\"m\" color=\"black\" hollow @click=\"buttonHandle('cancel')\">{{cancelButtonName}}</c-button>\r\n\t\t</template>\r\n\t</c-dialog>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'confirm',\r\n\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'enquire', // 消息类型 (enquire: 询问; warn: 警告;)\r\n\t\t\t\ttitle: '消息提醒', // 消息标题\r\n\t\t\t\tmessage: '', // 消息内容\r\n\t\t\t\tbuttonName: '确定',\r\n\t\t\t\tcancelButton: true,\r\n\t\t\t\tcancelButtonName: '取消'\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tmounted() {\r\n\t\t\tthis.$refs.dialog.open();\r\n\t\t},\r\n\r\n\t\tmethods: {\r\n\t\t\tbuttonHandle(state) {\r\n\t\t\t\tthis[state] && this[state]();\r\n\t\t\t\tthis.$refs.dialog.close();\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.$destroy();\r\n\t\t\t\t\tthis.$el.remove();\r\n\t\t\t\t}, 260);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t.c-confirm {\r\n\t\tpadding: 40px 36px;\r\n\t\t\r\n\t\t.icon {\r\n\t\t\tmargin-right: 16px;\r\n\t\t\tfont-size: 32px;\r\n\t\t}\r\n\r\n\t\t.title {\r\n\t\t\tmargin-right: 20px;\r\n\t\t\tline-height: 32px;\r\n\t\t\tfont-size: 16px;\r\n\t\t\tfont-weight: bold;\r\n\t\t\tcolor: #333;\r\n\t\t\t\r\n\t\t\t& + .content {\r\n\t\t\t\tmargin-top: 6px;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t.content {\r\n\t\t\tline-height: 20px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tword-break: break-all;\r\n\t\t\tcolor: #333;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./confirm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./confirm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./confirm.vue?vue&type=template&id=63f1dde7&scoped=true&\"\nimport script from \"./confirm.vue?vue&type=script&lang=js&\"\nexport * from \"./confirm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./confirm.vue?vue&type=style&index=0&id=63f1dde7&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63f1dde7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('c-dialog',{ref:\"dialog\",attrs:{\"title\":false,\"width\":\"auto\",\"button\":false}},[_c('div',{staticClass:\"preview-close flex-center\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"tf tf-cross\"})]),(_vm.video)?_c('video',{ref:\"video\",staticClass:\"preview-video\",attrs:{\"src\":_vm.src,\"controls\":\"\",\"loop\":\"\",\"autoplay\":\"\"}}):_c('img',{ref:\"img\",staticClass:\"preview-img\",attrs:{\"src\":_vm.src}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n\t<c-dialog ref=\"dialog\" :title=\"false\" width=\"auto\" :button=\"false\">\r\n\t\t<div class=\"preview-close flex-center\" @click=\"close\"><i class=\"tf tf-cross\"></i></div>\r\n\t\t<video v-if=\"video\" ref=\"video\" class=\"preview-video\" :src=\"src\" controls loop autoplay></video>\r\n\t\t<img v-else ref=\"img\" class=\"preview-img\" :src=\"src\">\r\n\t</c-dialog>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: 'preview',\r\n\t\t\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tsrc: ''\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tcomputed: {\r\n\t\t\tvideo() {\r\n\t\t\t\tvar arr = this.src.split('.');\r\n\t\t\t\t\r\n\t\t\t\treturn ['mp4', 'webm'].includes(arr[arr.length - 1]);\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmounted() {\r\n\t\t\tif (!this.src) return;\r\n\t\t\t\r\n\t\t\tthis.$loading();\r\n\t\t\tif (this.video) {\r\n\t\t\t\tthis.$refs.video.addEventListener('play', () => {\r\n\t\t\t\t\tthis.$loadOver();\r\n\t\t\t\t\tthis.$refs.dialog.open();\r\n\t\t\t\t});\r\n\t\t\t\tthis.$refs.video.addEventListener('error', () => {\r\n\t\t\t\t\tthis.$loadOver();\r\n\t\t\t\t\tthis.$message({\r\n\t\t\t\t\t\ttype: 'fail',\r\n\t\t\t\t\t\tmessage: '视频加载失败'\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis.$refs.img.onload = () => {\r\n\t\t\t\t\tthis.$loadOver();\r\n\t\t\t\t\tthis.$refs.dialog.open();\r\n\t\t\t\t};\r\n\t\t\t\tthis.$refs.img.onerror = () => {\r\n\t\t\t\t\tthis.$loadOver();\r\n\t\t\t\t\tthis.$message({\r\n\t\t\t\t\t\ttype: 'fail',\r\n\t\t\t\t\t\tmessage: '图片加载失败'\r\n\t\t\t\t\t})\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\tmethods: {\r\n\t\t\tclose() {\r\n\t\t\t\tthis.$refs.dialog.close();\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.$el.remove();\r\n\t\t\t\t}, 260);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n\t>>> .c-dialog {\r\n\t\tbackground: none;\r\n\t}\r\n\t\r\n\t.preview {\r\n\t\t&-close {\r\n\t\t\tz-index: 1;\r\n\t\t\tposition: absolute;\r\n\t\t\tright: 10px;\r\n\t\t\ttop: 10px;\r\n\t\t\twidth: 40px;\r\n\t\t\theight: 40px;\r\n\t\t\tborder-radius: 100%;\r\n\t\t\tfont-size: 18px;\r\n\t\t\tcolor: #fff;\r\n\t\t\tbackground: rgba(0,0,0,.6);\r\n\t\t\tcursor: pointer;\r\n\t\t\ttransition: all .3s ease;\r\n\t\t\t\r\n\t\t\t&:hover {\r\n\t\t\t\tcolor: $deleteHover;\r\n\t\t\t\tbackground: none;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&-img {\r\n\t\t\tmin-width: 200px;\r\n\t\t\tmax-width: 80vw;\r\n\t\t\tmin-height: 200px;\r\n\t\t\tmax-height: 80vh;\r\n\t\t}\r\n\t\t\r\n\t\t&-video {\r\n\t\t\tmin-width: 200px;\r\n\t\t\tmax-width: 80vw;\r\n\t\t\tmin-height: 200px;\r\n\t\t\tmax-height: 80vh;\r\n\t\t\tbackground: #000;\r\n\t\t}\r\n\t}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./preview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-124.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./preview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./preview.vue?vue&type=template&id=dc0d36ce&scoped=true&\"\nimport script from \"./preview.vue?vue&type=script&lang=js&\"\nexport * from \"./preview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./preview.vue?vue&type=style&index=0&id=dc0d36ce&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dc0d36ce\",\n null\n \n)\n\nexport default component.exports","import Button from './unit/button.vue'\r\n\r\nimport Input from './unit/input.vue'\r\nimport Radio from './unit/radio.vue'\r\nimport RadioGroup from './unit/radio_group.vue'\r\nimport Checkbox from './unit/checkbox.vue'\r\nimport CheckboxGroup from './unit/checkbox_group.vue'\r\nimport Select from './unit/select.vue'\r\nimport Region from './unit/region.vue'\r\nimport UploadFile from './unit/upload_file.vue'\r\nimport File from './unit/file.vue'\r\nimport Editor from './unit/editor.vue'\r\n\r\nimport cDialog from './popup/dialog.vue'\r\nimport loading from './popup/loading.vue';\r\nimport message from './popup/message.vue';\r\nimport notice from './popup/notice.vue';\r\nimport confirm from './popup/confirm.vue';\r\nimport preview from './popup/preview.vue';\r\n\r\nconst COMPS = [\r\n\tButton,\r\n\tInput,\r\n\tRadio,\r\n\tRadioGroup,\r\n\tCheckbox,\r\n\tCheckboxGroup,\r\n\tSelect,\r\n\tRegion,\r\n\tUploadFile,\r\n\tFile,\r\n\tEditor,\r\n\tcDialog\r\n];\r\nconst DYNAMIC_COMPS = [\r\n\tloading,\r\n\tmessage,\r\n\tnotice,\r\n\tconfirm,\r\n\tpreview\r\n];\r\nconst install = function(Vue, config) {\r\n\tCOMPS.forEach(comp => {\r\n\t\tVue.component(comp.name, comp);\r\n\t});\r\n\t\r\n\tvar popupNoticeList = [];\r\n\tvar $popupNotice = document.createElement('div');\r\n\t$popupNotice.style.zIndex = 999;\r\n\t$popupNotice.style.position = 'fixed';\r\n\t$popupNotice.style.right = 0;\r\n\t$popupNotice.style.top = 0;\r\n\tdocument.body.appendChild($popupNotice);\r\n\tDYNAMIC_COMPS.forEach(comp => {\r\n\t\tlet constructor = Vue.extend(comp);\r\n\t\tVue.prototype[`$${comp.name}`] = function(opt = {}) {\r\n\t\t\tlet vm = new constructor({\r\n\t\t\t\tel: document.createElement('div'),\r\n\t\t\t\tdata() {\r\n\t\t\t\t\treturn opt\r\n\t\t\t\t},\r\n\t\t\t\tmounted() {\r\n\t\t\t\t\tif (this.$options.name == 'notice') {\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tif ($popupNotice.clientHeight > window.innerHeight) {\r\n\t\t\t\t\t\t\t\tpopupNoticeList[0].close();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tbeforeDestroy() {\r\n\t\t\t\t\tif (this.$options.name == 'notice') {\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tpopupNoticeList.splice(popupNoticeList.findIndex(item => item == this), 1);\r\n\t\t\t\t\t\t\tif ($popupNotice.clientHeight > window.innerHeight) {\r\n\t\t\t\t\t\t\t\tpopupNoticeList[0].close();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tswitch (comp.name) {\r\n\t\t\tcase 'loading':\r\n\t\t\t\tVue.prototype.$loadOver = function() {\r\n\t\t\t\t\tvm.close();\r\n\t\t\t\t};\r\n\t\t\t\t\r\n\t\t\tcase 'notice':\r\n\t\t\t\tpopupNoticeList.push(vm);\r\n\t\t\t\t$popupNotice.appendChild(vm.$el);\r\n\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\tdocument.body.appendChild(vm.$el);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn vm;\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport default install;","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__7203__","isCallable","tryToString","$TypeError","TypeError","argument","isObject","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","value","O","length","index","includes","indexOf","DESCRIPTORS","isArray","getOwnPropertyDescriptor","Object","SILENT_ON_NON_WRITABLE_LENGTH_SET","undefined","defineProperty","writable","error","uncurryThis","toString","stringSlice","slice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","i","key","createPropertyDescriptor","object","bitmap","enumerable","configurable","makeBuiltIn","defineGlobalProperty","options","simple","name","global","unsafe","nonConfigurable","nonWritable","fails","get","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","MAX_SAFE_INTEGER","navigator","userAgent","match","version","process","Deno","versions","v8","split","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","prototype","dontCallGetSet","forced","sham","exec","test","bind","hasOwnProperty","NATIVE_BIND","call","Function","apply","arguments","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","fn","aFunction","namespace","method","aCallable","isNullOrUndefined","V","P","func","check","Math","globalThis","window","g","toObject","a","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","TYPE","state","type","metadata","facade","STATE","Array","$documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","obj","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","join","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","constructor","ceil","floor","trunc","x","n","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","enumBugKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","push","names","result","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","V8_VERSION","symbol","Symbol","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","number","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","proto","item","len","argCount","IMAGE_ALIGN_TOP","IMAGE_ALIGN_LEFT","IMAGE_ALIGN_RIGHT","KindEditor","console","log","_VERSION","_ua","_IE","_NEWIE","_GECKO","_WEBKIT","_OPERA","_MOBILE","_IOS","_QUIRKS","compatMode","_IERANGE","getSelection","_matches","_V","_TIME","Date","getTime","_round","round","K","DEBUG","VERSION","IE","GECKO","WEBKIT","OPERA","TIME","each","_each","_isArray","isFunction","_isFunction","inArray","_inArray","inString","_inString","trim","_trim","addUnit","_addUnit","removeUnit","_removeUnit","escape","_escape","unescape","_unescape","toCamel","_toCamel","toHex","_toHex","toMap","_toMap","toArray","_toArray","undef","_undef","invalidUrl","_invalidUrl","addParam","_addParam","extend","_extend","json","_json","_INLINE_TAG_MAP","_BLOCK_TAG_MAP","_SINGLE_TAG_MAP","_STYLE_TAG_MAP","_CONTROL_TAG_MAP","_PRE_TAG_MAP","_NOSPLIT_TAG_MAP","_AUTOCLOSE_TAG_MAP","_FILL_ATTR_MAP","_VALUE_TAG_MAP","basePath","_getBasePath","designMode","fullscreenMode","filterMode","wellFormatMode","shadowMode","loadStyleMode","themesPath","langPath","pluginsPath","themeType","langType","urlType","newlineTag","resizeType","syncType","pasteType","dialogAlignType","useContextmenu","fullscreenShortcut","bodyClass","indentChar","cssPath","cssData","minWidth","minHeight","minChangeSize","zIndex","items","noDisableItems","colorTable","fontSizeTable","htmlTags","font","span","div","table","embed","img","pre","hr","iframe","layout","_useCapture","_INPUT_KEY_MAP","_CURSORMOVE_KEY_MAP","_CHANGE_KEY_MAP","_EVENT_PROPS","KEvent","init","event","doc","ownerDocument","srcElement","nodeType","parentNode","relatedTarget","fromElement","toElement","pageX","clientX","d","documentElement","body","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","which","charCode","keyCode","metaKey","ctrlKey","button","preventDefault","ev","returnValue","stopPropagation","cancelBubble","stop","_eventExpendo","_eventId","_eventData","_readyFinished","attachEvent","events","_unbind","ctrl","_ctrl","ready","_ready","formatUrl","_formatUrl","formatHtml","_formatHtml","getCssList","_getCssList","getAttrList","_getAttrList","mediaType","_mediaType","mediaAttrs","_mediaAttrs","mediaEmbed","_mediaEmbed","mediaImg","_mediaImg","clearMsWord","_clearMsWord","tmpl","_tmpl","_getSetAttrDiv","setAttribute","_GET_SET_ATTRIBUTE","className","query","_query","queryAll","_queryAll","KNode","node","_getDoc","_getNodeName","win","_getWin","_bind","unbind","fire","_fire","hasAttr","_getAttr","attr","outer","k","v","_setAttr","removeAttr","_removeAttr","eq","hasClass","cls","_hasClass","addClass","removeClass","RegExp","html","innerHTML","_setHtml","text","innerText","textContent","hasVal","_hasVal","css","style","_computedCss","width","offsetWidth","height","offsetHeight","opacity","filter","pos","y","getBoundingClientRect","box","_getScrollPos","left","top","offsetLeft","offsetTop","offsetParent","clone","bool","cloneNode","append","expr","appendChild","_get","appendTo","before","insertBefore","after","nextSibling","replaceWith","nodes","newNode","replaceChild","empty","child","firstChild","next","removeChild","remove","keepChilds","show","_originDisplay","hide","display","isSingle","isInline","isBlock","isStyle","isControl","contains","otherNode","_contains","parent","children","list","nodeValue","first","last","sibling","previousSibling","prev","scan","order","walk","lastChild","_K","charAt","substr","childNodes","NodeClass","_START_TO_START","_START_TO_END","_END_TO_END","_END_TO_START","_BOOKMARK_ID","KRange","startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestor","getParents","parents","parentA","parentB","parentsA","parentsB","lenA","lenB","setStart","offset","_updateCollapsed","setEnd","setStartBefore","setStartAfter","setEndBefore","setEndAfter","selectNode","selectNodeContents","knode","collapse","toStart","compareBoundaryPoints","how","range","rangeA","rangeB","arr","nodeA","nodeB","nodeC","posA","posB","cmp","compareEndPoints","diff","cloneRange","rng","str","cloneContents","_copyAndDelete","deleteContents","extractContents","insertNode","c","sc","so","ec","eo","nodeCount","nodeName","splitText","surroundContents","hasControlRange","createRange","e","createControlRange","addElement","down","createTextRange","setEndPoint","_getEndRange","downPos","isStart","right","up","upPos","enlarge","toBlock","enlargePos","shrink","createBookmark","serialize","endNode","startNode","start","end","moveToBookmark","bookmark","dump","RangeClass","_range","START_TO_START","START_TO_END","END_TO_END","END_TO_START","KCmd","sel","_getSel","selection","forceReset","_getRng","select","hasDummy","hasU200b","dummy","moveToElementText","ex","focus","createTextNode","removeAllRanges","addRange","scrollTo","wrap","wrapper","copyWrapper","ancestor","_inPreElement","_wrapNode","map","tempRange","needSplit","_hasAttrOrCss","frag","dummyParent","ksc","_removeAttrOrCss","kscp","sb","_isEmptyNode","sa","startBefore","startDummy","endDummy","nodeList","cmpStart","startAfter","endAfter","commonNode","find","cNode","tagName","queryCommandState","lc","_nativeCommandValue","toggle","bold","strong","b","italic","em","underline","u","strikethrough","s","forecolor","hilitecolor","fontsize","fontname","fontfamily","removeformat","tags","inserthtml","quickMode","pasteHtml","outerHTML","pasteHTML","temp","getElementById","newRange","_toRange","insertHtml","createDocumentFragment","print","insertimage","url","title","border","align","createlink","setAttr","_nativeCommand","unlink","queryCommandSupported","CmdClass","cmd","_cmd","KWidget","z","_alignEl","alignEl","position","autoPos","src","autoScroll","scrollPos","diffX","diffY","updateProp","w","h","clientWidth","clientHeight","docEl","_docElement","draggable","moveEl","moveFn","_drag","WidgetClass","widget","_widget","_direction","getElementsByTagName","dir","KEdit","beforeGetHtml","beforeSetHtml","afterSetHtml","isDocumentDomain","location","protocol","host","domain","srcScript","iframeSrc","encodeURIComponent","_iframeDoc","open","write","_getInitHtml","close","contentWindow","afterChange","click","_mousedownHandler","blur","mousedown","keydown","_elementVal","disabled","contentEditable","removeAttribute","afterCreate","textarea","tabIndex","isNaN","parseInt","setWidth","setHeight","setTimeout","isFull","design","timeoutHandler","keyup","altKey","mouseup","contextmenu","EditClass","edit","_edit","iframeDoc","KToolbar","hover","disableMode","noDisableItemMap","_itemMap","mouseover","mouseout","_selectToolbar","unselect","enable","disable","disableAll","getAttribute","ToolbarClass","toolbar","_toolbar","KMenu","centerLineMode","addItem","centerDiv","itemDiv","leftDiv","rightDiv","iconClass","checked","beforeRemove","MenuClass","menu","_menu","KColorPicker","colors","selectedColor","_cells","cellPadding","cellSpacing","row","insertRow","cell","insertCell","colSpan","_addAttr","j","color","noColor","ColorPickerClass","colorpicker","_colorpicker","KUploadButton","fieldName","extraParams","afterError","alert","hiddenElements","form","fileBox","submit","tempForm","reset","afterUpload","UploadButtonClass","uploadbutton","_uploadbutton","KDialog","previewBtn","yesBtn","noBtn","closeBtn","showMask","contentDiv","iframeMask","headerDiv","closeIcon","clickEl","beforeDrag","bodyDiv","footerDiv","btn","_createButton","mask","docWidth","scrollWidth","docHeight","scrollHeight","isLoading","setMaskIndex","showLoading","msg","loading","hideLoading","DialogClass","dialog","_dialog","tabs","_tabs","loadScript","_loadScript","loadStyle","_loadStyle","ajax","_ajax","_plugins","_language","KEditor","lang","mixed","_lang","loadPlugin","_pluginStatus","handler","_handlers","clickToolbar","updateState","addContextmenu","_contextmenus","create","isCreated","overflow","container","toolbarDiv","editDiv","statusbar","_scrollPos","_fullscreenExecuted","htmlList","menuName","hideMenu","editHeight","_removeBookmarkTag","_removeTempTag","_docMousedownFn","_bindContextmenuEvent","_bindNewlineEvent","_bindTabEvent","_bindFocusEvent","addBookmark","readonlyMode","readonly","initContent","_undoStack","pop","initResize","resize","_fullscreenResizeHandler","dialogs","hideDialog","fullHtml","isEmpty","isDirty","selectedHtml","count","changeFlag","appendHtml","sync","checkSize","abs","_firstAddBookmark","_addBookmarkToStack","undo","_undoToRedo","_redoStack","redo","fullscreen","isReadonly","createMenu","hideContextmenu","createDialog","firstDialog","parentDialog","errorDialog","_instances","_eachEditor","splice","EditorClass","editor","_editor","_create","instances","plugin","_plugin","shortcutKeys","selectall","hasForm","resetBtn","loaded","blocks","heights","h1","h2","h3","H4","p","curVal","getSelectedLink","getSelectedImage","_getImageFromRange","getSelectedFlash","getSelectedMedia","getSelectedAnchor","uName","toUpperCase","cond","getSelectedTable","getSelectedRow","getSelectedCell","pasting","movePastedData","execCommand","full","tag","$0","$1","$2","$3","imgAttrs","styles","attrs","code","href","_addClassToTag","delimiter","unit","hex","defaultVal","param","childProto","cx","lastIndex","charCodeAt","eval","els","substring","lastIndexOf","_bindEvent","addEventListener","_unbindEvent","removeEventListener","detachEvent","_getId","_setId","_removeId","kevent","shiftKey","readyFunc","ieReadyStateFunc","toplevel","frameElement","doScroll","ieReadyFunc","readyState","reg","_formatCss","pathname","m","getRealPath","path","parts","paths","part","getRelativePath","depth","prefix","wellFormatted","fontSizeList","htmlTagMap","script","re","tagStack","$4","$5","$6","startNewline","startSlash","endSlash","endNewline","attrMap","fontStyleMap","fontStyle","styleMap","_mediaClass","srcTag","blankPath","exprList","mergedResults","stripslashes","cmpTag","tagA","tagB","byId","byClass","getElementsByClassName","querySelectorAll","byName","getElementsByName","byAttr","matches","results","subResults","l","isChild","lenth","parentWindow","defaultView","camelKey","getComputedStyle","getPropertyValue","currentStyle","_docHeight","_docWidth","scrollX","scrollY","isCopy","isDelete","splitTextNode","centerNode","center","removeNodes","copyRange","incStart","incEnd","textNode","extractNodes","nextNode","childFlag","testRange","_moveToElementText","_getStartEnd","parentElement","pointRange","duplicate","startPos","nodeRange","moveStart","prevNode","kchild","tr2td","cells","queryCommandValue","rangeCount","getRangeAt","_singleKeyMap","newMap","_hasAttrOrCssByKey","mapKey","_removeAttrOrCssByKey","allFlag","_getInnerNode","inner","_mergeWrapper","lastA","childA","merged","_mergeAttrs","nodeWrapper","iframeFix","docs","mousemove","moveListener","upListener","selectListener","setCapture","kdoc","releaseCapture","contentDocument","arg","afterSelect","liList","ul","add","tab","li","selectedIndex","panel","head","charset","onload","onreadystatechange","_chopQuery","link","absoluteUrl","links","rel","dataType","xhr","XMLHttpRequest","ActiveXObject","status","responseText","params","setRequestHeader","send","_parseLangKey","ns","maxWidth","shift","prevItem","visibility","menuHeight","brSkipTagMap","pSkipTagMap","getAncestorTagName","afterTab","afterFocus","afterBlur","stack","fromStack","toStack","setOption","se","preview","cut","copy","paste","plainpaste","wordpaste","justifyleft","justifycenter","justifyright","justifyfull","insertorderedlist","insertunorderedlist","indent","outdent","subscript","superscript","formatblock","image","uploadImage","multiimage","flash","media","tablecell","emoticons","about","filemanager","baidumap","lineheight","clearhtml","pagebreak","quickformat","insertfile","template","anchor","yes","no","editImage","deleteImage","editFlash","deleteFlash","editMedia","deleteMedia","editLink","deleteLink","editAnchor","deleteAnchor","tableprop","tablecellprop","tableinsert","tabledelete","tablecolinsertleft","tablecolinsertright","tablerowinsertabove","tablerowinsertbelow","tablerowmerge","tablecolmerge","tablerowsplit","tablecolsplit","tablecoldelete","tablerowdelete","pleaseSelectFile","invalidImg","invalidMedia","invalidWidth","invalidHeight","invalidBorder","invalidRows","invalidCols","invalidPadding","invalidSpacing","invalidJson","uploadSuccess","cutError","copyError","pasteError","ajaxLoading","uploadLoading","uploadError","h4","nameBox","autoHeightMode","hideScroll","scroll","overflowY","resetHeight","mapWidth","mapHeight","address","search","insertDynamicMap","centerObj","getCenter","lng","lat","zoom","getZoom","checkbox","searchBtn","addressBox","geocoder","maptype","getMapTypeId","pleaseInput","emoticonsPath","allowPreview","allowPreviewEmoticons","currentPageNum","previewDiv","previewImg","rows","cols","total","startNum","pages","colsHalf","wrapperDiv","elements","removeEvent","bindCellEvent","num","createEmoticonsTable","pageNum","parentDiv","pageDiv","bindPageEvent","createPageTable","fileManagerJson","imgPath","makeFileTitle","filename","filesize","datetime","bindTitle","is_dir","filemanagerDialog","dirName","viewType","clickFn","moveup","viewImage","listImage","orderType","fileName","fileSize","fileType","moveupLink","viewTypeBox","orderTypeBox","reloadPage","elList","bindEvent","createFunc","fileUrl","current_url","dirPath","current_dir_path","is_photo","createCommon","changeFunc","createView","createList","moveup_dir_path","change","fileList","file_list","iconUrl","cell0","has_file","emptyFolder","photoDiv","allowFlashUpload","allowFileManager","formatUploadUrl","extraFileUploadParams","filePostName","uploadJson","upload","viewServer","urlBox","widthBox","heightBox","quality","viewServerBtn","message","afterSelectFile","$app","uploadFile","multiple","success","from","filePath","allowImageUpload","allowImageRemote","imageTabIndex","fillDescAfterUploadImage","imageDialog","imageUrl","imageWidth","imageHeight","imageTitle","imageAlign","showRemote","showLocal","remoteUrl","size","resetSize","imgTitle","localUrl","dialogWidth","dialogHeight","localUrlBox","titleBox","alignBox","refreshBtn","remoteImage","localImage","originalWidth","originalHeight","setSize","tempImg","allowFileUpload","fileDialog","fileTitle","lineHeight","linkType","typeBox","Option","newWindow","selfWindow","allowMediaUpload","autostart","autostartBox","loop","KSWFUpload","showError","progressbars","uploadDesc","startButtonValue","settings","debug","upload_url","uploadUrl","flash_url","flashUrl","file_post_name","button_placeholder","button_image_url","buttonImageUrl","button_width","buttonWidth","button_height","buttonHeight","button_cursor","SWFUpload","CURSOR","HAND","file_types","fileTypes","file_types_description","fileTypesDesc","file_upload_limit","fileUploadLimit","file_size_limit","fileSizeLimit","post_params","postParams","file_queued_handler","file","fileIconUrl","appendFile","file_queue_error_handler","errorCode","errorName","QUEUE_ERROR","QUEUE_LIMIT_EXCEEDED","queueLimitExceeded","FILE_EXCEEDS_SIZE_LIMIT","fileExceedsSizeLimit","ZERO_BYTE_FILE","zeroByteFile","INVALID_FILETYPE","invalidFiletype","unknownError","upload_start_handler","upload_progress_handler","bytesLoaded","bytesTotal","percent","progressbar","bar","upload_error_handler","filestatus","FILE_STATUS","ERROR","errorMessage","upload_success_handler","serverData","swfu","startUpload","getUrlList","COMPLETE","removeFile","fileId","cancelUpload","removeFiles","statusDiv","pendingMessage","destroy","swfupload","element","imageSizeLimit","imageUploadLimit","imageFileTypes","multiImageDialog","uploadLimit","sizeLimit","insertAll","clearAll","pending","urlList","initSWFUpload","customSettings","eventQueue","movieName","movieCount","movieElement","initSettings","loadFlash","displayDebugInfo","UPLOAD_ERROR","HTTP_ERROR","MISSING_UPLOAD_URL","IO_ERROR","SECURITY_ERROR","UPLOAD_LIMIT_EXCEEDED","UPLOAD_FAILED","SPECIFIED_FILE_ID_NOT_FOUND","FILE_VALIDATION_FAILED","FILE_CANCELLED","UPLOAD_STOPPED","QUEUED","IN_PROGRESS","CANCELLED","BUTTON_ACTION","SELECT_FILE","SELECT_FILES","START_UPLOAD","ARROW","WINDOW_MODE","WINDOW","TRANSPARENT","OPAQUE","completeURL","hostname","port","indexSlash","ensureDefault","settingName","defaultValue","debug_enabled","return_upload_start_handler","returnUploadStart","debugMessage","custom_settings","prevent_swf_caching","preserve_relative_urls","targetElement","tempParent","button_placeholder_id","getFlashHTML","getMovieElement","classid","button_window_mode","getFlashVars","paramString","buildParamString","httpSuccessString","http_success","use_query_string","requeue_on_error","assume_success_timeout","file_queue_limit","button_text","button_text_top_padding","button_text_left_padding","button_text_style","button_action","button_disabled","paramStringPairs","CallFunction","ex1","ex2","swfupload_loaded_handler","file_dialog_start_handler","upload_complete_handler","debug_handler","addSetting","default_value","getSetting","callFlash","functionName","argumentArray","returnString","__flash__argumentsToXML","post","unescapeFilePostParams","selectFile","selectFiles","fileID","triggerErrorEvent","stopUpload","getStats","setStats","statsObject","getFile","addFileParam","removeFileParam","setUploadURL","setPostParams","paramsObject","addPostParam","removePostParam","setFileTypes","types","description","setFileSizeLimit","setFileUploadLimit","setFileQueueLimit","fileQueueLimit","setFilePostName","setUseQueryString","useQueryString","setRequeueOnError","requeueOnError","setHTTPSuccess","http_status_codes","setAssumeSuccessTimeout","timeout_seconds","setDebugEnabled","debugEnabled","setButtonImageURL","buttonImageURL","setButtonDimensions","movie","setButtonText","setButtonTextPadding","setButtonTextStyle","setButtonDisabled","isDisabled","setButtonAction","buttonAction","setButtonCursor","cursor","queueEvent","handlerName","executeNextEvent","uk","unescapedPost","fromCharCode","testExternalInterface","flashReady","cleanUp","instance","flashEx","fileDialogStart","fileQueued","fileQueueError","fileDialogComplete","numFilesSelected","numFilesQueued","numFilesInQueue","uploadStart","uploadProgress","bytesComplete","responseReceived","uploadComplete","exceptionMessage","exceptionValues","Console","writeLine","documentForm","fontFamily","margin","queue","oldInitSettings","queueSettings","queue_cancelled_flag","queue_upload_count","user_upload_complete_handler","user_upload_start_handler","uploadCompleteHandler","uploadStartHandler","queue_complete_handler","cancelQueue","stats","files_queued","continueUpload","pagebreakHtml","tail","comment","blockMap","getFirstChild","subList","zeroborder","_setColor","pickerList","_initColorPicker","dialogDiv","colorBox","removePicker","picker","_getCellIndex","rowSpanCount","rowSpan","cellIndex","prop","isInsert","px","space","padding","spacing","alignDefault","alignLeft","alignCenter","alignRight","borderWidth","borderColor","backgroundColor","rowsBox","colsBox","widthType","widthTypeBox","heightType","heightTypeBox","paddingBox","spacingBox","borderBox","bgColor","tableWidth","tableHeight","cellprop","textAlign","verticalAlign","alignTop","alignMiddle","alignBottom","alignBaseline","textAlignBox","verticalAlignBox","cellWidth","cellHeight","insert","colinsert","newRow","newCell","colinsertleft","colinsertright","rowinsert","rowIndex","rowinsertabove","rowinsertbelow","rowmerge","nextRowIndex","nextRow","nextCell","deleteCell","colmerge","nextCellIndex","rowsplit","colsplit","coldelete","rowdelete","deleteRow","htmlPath","getFilePath","selectTemplate","replaceContent","selectBox","originY","fixToolBar","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","definition","o","r","toStringTag","currentScript","render","_vm","_c","_self","staticClass","hollow","on","$event","$emit","icon","class","_e","_t","staticRenderFns","props","default","Boolean","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","component","directives","rawName","expression","valueData","ref","maxlength","placeholder","domProps","composing","inputHandle","_v","_s","stepControls","minRange","stepHandle","compType","_i","$$a","$$el","$$c","$$v","$$i","_q","clear","clearHandle","visible","visibleState","maxRange","Number","decimal","step","computed","compRange","parseFloat","compDecimal","watch","methods","forEach","$refs","valueStep","stepStep","toFixed","checkState","disabledState","checkHandle","$slots","createStore","Vue","commit","mapState","res","$parent","groupDisabled","_l","_m","inGroup","parseValueData","inGroupDisabled","limit","$message","listPosition","developHandle","emptyState","valueName","level","currentValue","clickHandle","selectList","currentData","updateCurrentData","mounted","$el","foldHandle","components","listWidth","listHeight","optionsClone","JSON","parse","stringify","old","getCurrentData","$nextTick","rect","innerHeight","bottom","parsePixel","provinceOptions","changeHandle","model","province","callback","$set","cityOptions","city","countyOptions","county","provinceName","cityName","countyName","addressName","updateOptions","addressJson","uploadHandle","$preview","isVideo","removeHandle","tip","fileTypeTip","$scopedSlots","custom","video","word","excel","zip","suffix","download","_uid","activated","beforeDestroy","active","staticStyle","animate","compWidth","confirm","closeButton","compHeight","oddHeight","buttonHandle","buttonName","cancelButton","cancelButtonnName","popup","slide","_observer","MutationObserver","updateOddHeight","observe","content","childList","subtree","disconnect","timeout","created","_$message","_$messageVm","_timer","clearTimeout","$destroy","slot","cancelButtonName","$loading","$loadOver","onerror","COMPS","Button","Input","Radio","RadioGroup","Checkbox","CheckboxGroup","Select","Region","UploadFile","File","Editor","cDialog","DYNAMIC_COMPS","notice","install","config","comp","popupNoticeList","$popupNotice","opt","vm","findIndex"],"sourceRoot":""}
|